串口不工作
请逐一检查:
- 是否正确配置复用IO口(先用RCC_APB2PeriphClockCmd在RCC寄存器中先开启GPIOx的时钟使能,再用 GPIO_Init 进行IO复用配置)
- 是否正确配置串口通讯格式(先用RCC_APBxPeriphClockCmd在RCC寄存器中先开启USARTx的时钟使能,再用USART_Init进行串口配置)
- 别忘了用USART_Cmd(USARTx, ENABLE)把串口打开。
- 检查配置复用GPIO时,是否配置输出速度。 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
串口模块图
TC/TXE 标志位说明
在进行串口发送时需要先检查 USARTx->SR.TXE标志位的情况,当高时在往外发数据。
其他复用管脚
对于使用默认的复用管脚可以不用配置 AFIO_MAPR 寄存器,但是要使用非默认的复用管脚就必须要配置AFIO寄存器。