STM32学习心得(二)点亮LED灯

2023-10-27

STM32学习心得(二)点亮LED灯
在创建好工程模板后,就可以开始真正进入STM32的学习。手下那当然是试着点亮一个LED灯。
首先在USER目录下创建一个空文件夹,并命名为bsp_led(bsp的意思是板级支持包,即该代码仅支持这块板子),进去文件夹,新建两个文件,分别是bsp_led.c以及bsp_led.h
打开工程,把.c文件添加进工程中,同时在路径中设置好.h文件的路径
在这里插入图片描述
工程建立完成后,双击打开bsp_led.h,在文件中写入以下宏定义

#ifndef __BSP_LED_H
#define __BSP_LED_H

#include"stm32f10x.h"

#define LED_G_GPIO_PIN        GPIO_Pin_0  //定义绿色灯所在的引脚
#define LED_G_GPIO_PORT       GPIOB 
#define LED_G_GPIO_CLK        RCC_APB2Periph_GPIOB


void LED_GPIO_CONFIG(void);

#endif

然后打开bsp_led.c文件,写入以下代码

// bsp: board support package 板级支持包
//即该程序只支持这块板子,不支持别的板子

#include "bsp_led.h"

void LED_GPIO_CONFIG(void)
{
  //第一步:新建一个初始化的结构体
	GPIO_InitTypeDef GPIO_InitStruct;
	
	//向结构体内添加成员参数
	GPIO_InitStruct.GPIO_Pin = LED_G_GPIO_PIN;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//设置为推挽输出
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	
	//第二步:调用stm32f10x_gpio.c中的初始化函数
	//第一个参数为要设置的端口名,第二个参数为上述定义中的结构体指针
	GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct);
	
	//第三步打开时钟,找到RCC固件库中对应的函数
	//第一个参数为要配置的引脚,第二个为使能DISABLE/ENABLE
	RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);
}

最后进入main.c文件,写入

#include "stm32f10x.h"

#include"bsp_led.h"

int main(void)
{
	while(1)
	 {
	LED_GPIO_CONFIG();
	//GPIO_SetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);
	//GPIO_ResetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);
	}
}

编译后下载进板子里,over

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32学习心得(二)点亮LED灯 的相关文章

  • STM32 Keil:warning: #223-D: function "LED_Init" declared implicitly

    include stm32f10x h include led h int main LED Init while 1 GPIO SetBits GPIOD GPIO Pin 6 运行时警告 warning 223 D function L
  • STM32 Keil:warning: #223-D: function "LED_Init" declared implicitly

    include stm32f10x h include led h int main LED Init while 1 GPIO SetBits GPIOD GPIO Pin 6 运行时警告 warning 223 D function L
  • STM32在Keil中芯片内部内存溢出

    STM32在Keil中芯片内部内存溢出 问题出现原因 在Keil5的Arm6 编译器中 STM32和SD ram 无法建立连接 导致编译不通过 解决方案 在全局变量只能设置外部RAM uint32 t trstsra 25000000 at
  • STM32入门:Systick(嘀嗒定时器)学习

    Systick 系统嘀嗒定时器 学习 一 Systick 介绍 Systick 是 STM32 的一个系统定时器 又名系统嘀嗒定时器 是一个 24 位的倒计数定时器 当计数到 0 时 将从 RELOAD 寄存器中自动重装载定时初值 开始新一
  • 代码实现 —— 基于 STM32 的可见光通信系统课程设计

    目前课设已完成 2m距离 传输10000个连续数字 每个数字两字节大小 即总共20000个字节160000bit 用时7s 大约2 3万bit s 即22 4kB s 误码率为0 视频演示链接 另外 自己写了一个基于QT的串口上位机 结合U
  • Keil5关于.h文件编译时遇见报错打不开时的解决方案

    添加路径即可
  • STM32进阶:使用STM32驱动ST7735S(内附核心源码)

    使用STM32驱动ST7735S 内附核心源码 感觉很久很久没有来博客更新了 历经千难万阻 终于做出来了TFT显示屏的SPI驱动 这里分享以下核心源码 接下来一段时间开始准备考科一了 后面有时间了再来更新 有三种模式下的驱动 一 软件SPI
  • 解决STM32驱动0.96OLED不亮的问题

    问题描述 使用STM32无法驱动OLED 解决方案 1 检查硬件连接是否有误 OLED STM32 VCC 5V或3 3V SDA SDA SCL SCL GND GND 备注 最好接STM32最小系统版的3 3V 当连接STM32最小系统
  • STM32CubeMX----基本定时器(TIM6、TIM7)

    基本定时器TIM6 TIM7 的相关参数 Activated 激活TIM6 把前面的方框选中局表示激活了TIM6 One Pulse Mode STM32F103定时器的One Pulse Mode是一种特殊的计数模式 它只产生一个脉冲输出
  • PWM 驱动电机

    文章主要是个人的笔记 所以很多地方可能是根据自己的情况来写的 驱动器 使用的是L298N CubeMX的配置 基本的配置略过 时钟源等 我们使用定时器1 1 选择内部时钟 通道1 PWM互补通道 2 这里我们后面把预分频的值改为了3 计数值
  • BeagleBone Black 学习网址

    https www digikey com eewiki display linuxonarm BeagleBone Black
  • 【stm32】跑马灯实验(报错未解决)

    采用推挽输出 若PE5 PD5输出低电平 两端形成电压差 LED点亮 若输出高电平 LED熄灭 导入工程模板文件 魔术棒新建文件夹 引用外设需要一个 h和 c文件 参考头文件和源文件的概念理解 头文件概念 five five的博客 CSDN
  • 第四步:STM32F4 GPIO介绍

    1 0 STM32F407ZGT6引脚说明 STM32F407ZGT6 一共有7组IO口 每组IO口有16个IO 一共16X7 112个IO 外加2个PH0和PH1 一共114个IO口 GPIOA GPIOB GPIOG PH0 PH1 1
  • HAL库下的systick 底层配置 HAL_Delay实现原理 微秒级延时(非中断)以及一些重写延时的小坑 关于HAL_Delay的使用问题

    systick HAL Delay实现原理 微秒级延时 非中断 以及一些重写延时的小坑 关于HAL Delay的使用问题 HAL Delay实现原理 HAL库下的systick 底层配置 实现微秒级的延时 重写延时的小坑 关于HAL Del
  • STM32在Keil5中硬件仿真问题记录汇总

    STM32在Keil5中硬件仿真问题记录汇总 问题描述 使用平台 处理方式 硬件上接线问题 问题描述 0x1FFFF3AE 0549 LSLS r1 r1 21 0x1FFFF3B0 D5FB BPL 0x1FFFF3AA 0x1FFFF3
  • STM32学习之以太网介绍

    以太网简介 以太网 Ethernet 是互联网技术的一种 由于它是在组网技术中占的比例最高 很多人直接把以太网理解为互联网 以太网是指遵守IEEE802 3标准组成的局域网 由IEEE 802 3标准规定的主要是位于参考模型的物理层 PHY
  • 关于指针

    指针的一些基础知识 1 指针的定义 数据在内存中的地址也称为指针 如果一个变量存储了一份数据的指针 我们就称它为指针变量 在C语言中 允许用一个变量来存放指针 这种变量称为指针变量 指针变量的值就是某份数据的地址 这样的一份数据可以是数组
  • 【STM32】LCD液晶显示

    作者 一只大喵咪1201 专栏 STM32学习 格言 你只管努力 剩下的交给时间 LCD显示 LCD简介 TFTLCD驱动原理 ILI9341 液晶控制器简介 液晶屏的信号线及 8080 时序 使用 STM32 的 FSMC 模拟 8080
  • STM32 用cubemx移植IAP功能,实现串口升级

    感谢网上的大神 通过你们的文章我终于测试iap升级通过了 具体iap功能我白嫖一段 程序上电先进入 bootloader代码功能 后面通过bootloader跳转到用户的功能代码中 使用的开发板芯片 STM32F103VET6 串口1升级
  • 那些踩过的declared implicitly的坑

    缺少头文件 我的本意是想做串口打印进行调试 于是我在usart c中重写了这两个函数 这里顺便记录下如何串口打印 usart c中 int fputc int ch FILE f HAL UART Transmit huart1 uint8

随机推荐

  • VTK安装与配置补充2

    本文参考自 https blog csdn net sinat 25923849 article details 78889674 1 原材料 1 1 VTK 最新 Release 文件包 https www vtk org downloa
  • Jenkins使用总结,2.0 新时代:从 CI 到 CD

    Jenkins近阶段使用的总结篇 只写了个引子 却一直未动手写完 今天补上 前几篇文章提到在内网jenkins直接构建部署升级线上环境 job都是暴露在外面 很容易被误操作 需要做简单的权限控制 以防止误操作 导致生产环境挂掉 但jenki
  • Zotero PDF translate翻译CNKI报错

    错误信息 请求错误 此翻译引擎不可用 可能是密钥错误 也可能是请求过快 可以尝试其他翻译引擎 或者来此查看相关回答 https zotero yuque com staff gkhviy pdf trans age09f 请注意 这些错误与
  • 【数据仓库设计基础1】关系数据模型理论与数据仓库Inmon方法论

    文章目录 一 关系数据模型中的结构 1 关系 2 属性 3 属性域 4 元组 5 关系数据库 6 关系表的属性 7 关系数据模型中的键 二 关系完整性 1 空值 NULL 2 关系完整性规则 3 业务规则 4 关系数据库语言 三 规范化 四
  • Openwrt 开启openvpn服务访问内网

    具体设置网上有很多 本篇仅记录如何设置访问内网网段 其实很简单 首先openvpn路由 可以使用 option push route 192 168 1 0 255 255 255 0 内网网段为192 168 1 0 或者 option
  • 2023-6-2第三十三天

    superimpose使叠加 tutorial教程 辅导材料 purge清除 净化 diagonally斜线的 对角线的 exponential指数的 ampersand eject逐出 弹出 supposed假定 猜想 误信的 assum
  • 硬币组合问题python_关于硬币的python问题

    展开全部 coding utf8 import random def chkcoin acoin basecoin 1 5 10 25 flag False for bc in basecoin 62616964757a686964616f
  • php curl 带入cookie,PHP CURL中传递cookie的方法步骤

    curl的cookie怎么使用 新手都很头疼的 curl的参数太多了 其中cookie部分就涉及了4个 当然了 手册上明白写的curl的cookie是3个 但是嘛 不是还有个header的参数嘛 里面可以包含cookie curl非常的好用
  • chatgpt赋能python:Python文件转pyc文件详解

    Python文件转pyc文件详解 Python作为一门程力语言 在软件工程领域中独树一帜 但是Python解释器每次运行程序都会解释Python代码 这种运行方式会降低程序的运行速度 为了避免这种情况的发生 可以将Python文件编译成字节
  • air724UG + Luat玩转物联网(四) 定时器

    luat已经将定时器封装入sys模块 每创建一个任务就会消耗一个定时器 最大不能超过32个 一 luat定时器使用方法 1 sys timerStart fnc ms 开启一个定时器 参数 参数 释义 fnc fnc 定时器回调函数 ms
  • React项目 管理后台页面框架搭建

    使用 antd 这个框架搭建 使用 Layout 进行页面布局 在文件夹 component 创建一个新的组件 叫做Frame 然后里面在创建一个叫做index js 这是我们管理后台的一个大的布局结构 在index js 里添加代码 首先
  • 【拍照画面异常问题的 buffer dump和处理】

    当拍照遇到画面异常问题 建议先dump拍照对应的raw yuv和jpeg 一 Dump拍照对应的raw图 1 Non zsl拍照 Non zsl拍照会让P1node重新出raw图 而拍照会用到这些raw图中的imgo buffer 1 1
  • Pycharm设置终端自动进入当前python环境

    这里写自定义目录标题 设置Pycharm中的Powershell终端 powershell初始化 设置Pycharm中的Powershell终端 使用系统自带powershell的请忽略此步 在设置 工具 终端中设置默认powershell
  • 人生苦短,Python是岸——别了!Python之父!

    就在7月12日 著名的Python之父Guido van Rossum正式退出Python核心决策层 他在邮件里有点生气又有点伤心的写道 现在PEP 572已经完成 我不再想为一个PEP这么努力争取 而且还发现有这么多人鄙视我的决定 这个完
  • label+input 选择(优化多选按钮)及 input实现全选反选

    1 多选 选择之后不同的背景 input中 id和label中 for对应的值必须相同
  • Tomcat 8和10的安装和修改

    Tomcat10 jdk11没有jre目录了 tomcat安装后需要做一些修改 JAVA HOME usr local jdk11 JAVA BIN JAVA HOME bin export JAVA BIN JAVA HOME bin e
  • 全网最全系统学习爬虫教程,用爬虫进行数据分析(bs4,xpath,正则表达式)

    1 bs4解析基础 2 bs4案例 3 xpath解析基础 4 xpath解析案例 4k图片解析爬取 5 xpath解析案例 58二手房 6 xpath解析案例 爬取站长素材中免费简历模板 7 xpath解析案例 全国城市名称爬取 8 正则
  • jwt 非对称加密 密钥生成

    1 生成证书 有效期 100年 2 证书的名称 pubKey 3 证书生成需要的盐值 7018 z1 在java项目中使用rsa非得对称加密 只需要生成的 证书 pubKey jks以及生成的公钥 私钥一般用不到 如果加密和解密只需要公钥和
  • vs2017试用延长期已到_将Windows 7试用版从30天延长到120天

    vs2017试用延长期已到 Did you know that you can install Windows 7 without any license key and use it for 30 days What you might
  • STM32学习心得(二)点亮LED灯

    STM32学习心得 二 点亮LED灯 在创建好工程模板后 就可以开始真正进入STM32的学习 手下那当然是试着点亮一个LED灯 首先在USER目录下创建一个空文件夹 并命名为bsp led bsp的意思是板级支持包 即该代码仅支持这块板子