一.STM32F103C8T6
(1)命名规则
(2)系统结构
(3)引脚定义
二.新建工程模板
(1)型号分类及缩写
(2)工程建立
1)新建工程文件夹,Keil中新建工程,选择型号
2)工程文件夹中新建文件夹Start、Library、User,复制固件库文件到工程文件
(Start)内核寄存器描述:core_cm3.c/h
(Start)外设寄存器描述:stm32f10x.h
(Start)定义SystemInit:System_xx.c/h
(Start)启动调用函数描述:startup_md.s
(Library)库函数描述:misc.c/h;stm32f10x_adc.c/h;…
(User)库函数配置描述:stm32f10x——conf.h
(User)定义中断处理函数:stm32f10x_it.c/h
(User)定义main函数:main.c
3)keil工程里建分组Start、Library、User,将文件夹内的文件添加到工程分组中
4)工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹
5)工程选项,C/C++Define输入USE_STDPERIPH_DIRVER
6)工程选项,Debug选择对应调试器,Setting,Flash Download勾选Reset and run
三.GPIO输出:LED和蜂鸣器
1)GPIO的8种工作模式
选择STM32的GPIO工作模式时,需要根据具体的应用场景和需求来决定。以下是一些选择工作模式时的考虑因素:
1.
输入模式:
如果你需要读取外部设备的状态,并且外部设备可以提供稳定的高或低电平信号,可以选择浮空输入。
如果外部设备可能处于高阻态或未连接状态,为了确保读取到稳定的电平,可以选择上拉输入或下拉输入。上拉输入适用于外部设备通常为低电平或未连接时,下拉输入适用于外部设备通常为高电平时。
2.
输出模式:
如果你需要控制一个LED灯或驱动一个简单的数字设备,推挽输出模式通常是最合适的选择,因为它可以提供稳定的高电平和低电平输出。
如果你需要实现如I2C总线上的多主机通信,或者需要实现一个集电极开路输出,那么开漏输出模式会更适合。(软件IIC)
3.
模拟模式:
如果你的应用需要读取模拟信号,如温度传感器的输出,那么需要将GPIO配置为模拟输入模式,并连接到ADC模块。
STM32的GPIO不支持直接的模拟输出,但可以通过DAC模块输出模拟信号。
4.
特殊模式(复用功能模式):
当你需要使用STM32的内置外设(如UART、SPI、I2C等)时,需要将相应的GPIO引脚配置为复用功能模式。根据外设的需要,可能还需要配置为复用推挽输出或复用开漏输出。(硬件IIC:复用开漏输出,SPI:复用推挽输出)
在选择GPIO工作模式时,还需要考虑以下因素:
电气特性:不同的模式下,GPIO引脚的电气特性(如输出电流能力、输入/输出电平标准等)会有所不同。
功耗:某些模式(如开漏输出)可能更适合低功耗应用。
电路设计:根据电路设计的需要,选择合适的上拉/下拉电阻值或是否需要外部上拉/下拉电阻。
最后,确保在配置GPIO之前,仔细阅读STM32的参考手册和数据手册,了解每个引脚的复用功能和电气特性,以便做出正确的选择。在实际应用中,可能还需要通过实验和调试来验证所选模式是否满足设计要求。
2.LED接线图
3.LED驱动文件封装LED.c和LED.h
头文件led.h