步骤1:在SYSTEM创建相应的外设文件夹以及对应的.c/.h源文件(具体可参考之前写的创建基本工程文件)
基于STM32官方库如何独立创建一个标准的STM32F103X的标准工程文件_是浩吉呀哈的博客-CSDN博客
步骤2:将对应的源文件加入工程中
步骤3:查看硬件连接情况,在我使用的单片机中红灯是作为电源指示灯的功能,所以通电就会亮。插件式
和贴片式
两种,(本文采用的是贴片式)插件式元件有较长的引脚,需要穿过PCB板,所以必须开孔才能焊接,如常见的Lamp、食人鱼等;
LED的工作条件就是在灯的两边产生电势差;从下面电路图可以看出所有灯的一端在单片机上接着一个VCC(电源正极、高电平),所以我们要想点亮它,就必须在灯的另外一端接地(低电压、零伏)。所以我们只需要把PB6、PB7、PB8、PB9这几个端口统一下拉(给低电平)。
步骤4:打开相应的(你当前用到的外设)外设时钟,因为我们使用到的端口是PB6、PB7、PB8、PB9,所以我们需要在STM32中文参考手册找到连接的外设GPIOB口(以下是STM32中文参考手册下载链接,需要的可以自行下载)
百度网盘链接:https://pan.baidu.com/s/1TB299-w3ECbpDKoWthHWlw?pwd=hj66
提取码:hj66
这是配置总路线:
首先我们需要写的是GPIO的输出初始化程序:
1)首先我们需要做的是选定GPIO后,看需要配置的时钟线是哪一个(时钟在32中的作用可以想象成心脏,没有心脏所有程序都会运行失败),然后把相应的时钟打开
0x40021018是基地址,并不是APB2 外设时钟使能寄存器(RCC_APB2ENR)的地址,还需要加上他的偏移地址。0x40021018=0x4002100+0x18;
2)选定GPIO(具体),这里我们选定的是GPIOB,记住它的地址。
此时,我们需要配置IO口的输出模式(寄存器GPIO_CRL和寄存器GPIO_CRH),此时因为我们测试就点亮PB6、PB7这两个端口的灯(端口0-7配置在寄存器GPIO_CRL,端口8-15在寄存器GPIO_CRH)所以,我们需要把六号和七号配置成通用推挽输出模式。
3)控制GPIO输出高低电平(寄存器GPIO_ODR)
因为32的端口配置完之后默认的是低电平,所以LED一来就就会被点亮,这个时候我们需要将整个端口上拉!
那么,到这我们的LED灯初始化就已经完成!
步骤5:将LED灯进行宏定义,在主函数中方便调用。
步骤5:在主函数中调用。
主函数中调用的是毫秒级延时函数,具体代码如下
今天笔记分享到这,希望能够得到大家的指正!!谢谢!