ps:本人单片机入门从arduino uno和2560开始,在做了全国起重机创意赛的过程中使用arduino为主控板,发现arduino虽然入门简单,但实现功能有限,所以开始上手stm32,前面22个章节的学习感觉挺简单的,从23章开始感觉有些难度,开始记笔记,在这里和大家分享一二,不对之处请指正。相关手册资料见文末链接。
1.端口复用配置过程
端口复用:例如串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。(端口功能可查STM32F103ZET6芯片手册)
eg:PA9,PA10复用为串口1配置过程
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//①IO时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//②外设时钟使能
//③初始化IO为对应的模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9//复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 PA.10 浮空输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
GPIO_Init(GPIOA, &GPIO_InitStructure);
2.引脚重映射配置过程(串口1为例)
端口重映射:每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在STM32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。
1.使能GPIO时钟(重映射后的IO)
2.使能功能外设时钟(例如串口1)
3.使能AFIO时钟