新建工程模块-基于寄存器
过程步骤如下:
1.在“程序源码-stm32启动文件-选择适合大小的启动文件”,找到启动文件,并将其复制到对应的文件夹中。
2.打开keil新建工程文件(新建工程分组与库函数版本相同),再将启动文件加入其中
3.编译过程文件以及输出hex,甚至添加头文件均与库函数版本相同,但复制是不能直接复制库函数的systerm
4.注意编译时需要主函数,不然会产生错误提示无头文件
5.编译主函数
GPIO原理
1.GPIO基本结构和工作方式
STM32F103ZET6
- 一共有7组IO口
- 每组IO口有16个IO
- 一共16X7=112个IO
GPIOA,GPIOB---GPIOG
IO口的基本结构:
GPIO有四种输入模式与输出模式:
输入模式:输入上拉,输入下拉,浮空输入,模拟输入
输出方式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能
推挽输出:可以输出强高低电平,连接数字器件
开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)
2.GPIO寄存器说明
每组GPIO端口的寄存器包括:
两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH) ,
两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR),
一个32位置位/ 复位寄存器(GPIOx_BSRR),
一个16位复位寄存器(GPIOx_BRR),
一个32位锁定寄存器(GPIOx_LCKR)。
每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问) 。
- GPIOx_CRL :端口配置低寄存器
- GPIOx_CRH:端口配置高寄存器
- GPIOx_IDR:端口输入寄存器
- GPIOx_ODR:端口输出寄存器
- GPIOx_BSRR:端口位设置/清除寄存器
- GPIOx_BRR :端口位清除寄存器
- GIOx_LCKR:端口配置锁存寄存器
至于各个寄存器如何使用,博主因水品有限,无法做具体说明,读者可自行参考资料进行理解