对于串口通信,如果只是发送数据的话,不需要配置串口中断,但如果要接收数据的话,就需要配置串口中断和NVIC寄存器。我所使用的野火霸道v1开发板上,TX连接PA10,RX连接PA9,因此我们需要配置两个部分,一个是串口模块的配置,一个是GPIO的配置。GPIO的配置不再详细说了,第一节课已经写得很详细。
发送引脚的配置类似于led,接收引脚的配置类似于按键。
GPIO有关配置弄好以后,需要对USART初始化结构体进行配置。 关于这六个成员配置成什么模式,可以去看USART的寄存器,比如USART_BaudRate,
它就是操作这个寄存器来配置的。不过你学习之后会发现,其实就算对寄存器不是很了解,也能知道怎么配置。因为固件库已经把这些对寄存器的操作封装成了一个个更加易懂的函数,你只需要读懂函数的意义就可以。而且寄存器中的很多位你基本上用不到,基本不需要管它。
再举一个例子,USART_WordLength,它对应寄存器USART_CR1中的位12。
对USART结构体配置好后:
这是没有串口接收的配置,如果要串口接收,需要配置串口中断。
完成上述配置,我们就可以调用 USART_SendData(USART_TypeDef* USARTx, uint16_t Data)函数来发送一字节的数据。
为了检测我们是否发送完成,我们需要调用 USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG)函数来检测是否发送完成。 我们把这两个函数放在一起重新构件一个函数。
如果我们想要发送字符串,数组等类型,则需要自己去写发送字符串函数,发送数组函数。
到此,串口发送的章节就结束了。
如果想使用串口接收功能,再加上下面的配置就行了。