一、首先开发板上关于串口1的引脚配置已经配置好了,位置在SYSTEM的 usart.c 文件中(注意:只配置了串口1的,其他使用时需要自己配置)
重要的是明白配置的参数都是什么意思,针对实现不同的串口功能有什么影响
二、主要是结合串口的固件库函数使用,熟悉固件库中各个函数的使用方法
串口配置:
1.三个结构体
2.使能外设引脚时钟,使能串口外设时钟
3.F407每个引脚功能很多,所以需要配置引脚的功能模式(引脚的各个配置对于引脚的输入输出功能都有什么影响,在此暂且默认为例程的配置,其他串口不同的配置后续再做研究)
进行引脚初始化设置
4.复用功能配置,将引脚的功能定为串口外设要使用的引脚
5.对串口外设需要实现的功能进行相应的参数配置
注意有些硬件设备上USB串口和USART引脚并没有连接起来,需要通过跳线帽连接
这样连接,可以实现通过USB口下载程序以及传输数据
这张图就是其基本原理,
需要配置的参数
:
① 串口时钟使能,GPIO 时钟使能
② 设置引脚复用器映射
③ GPIO 端口初始化设置
④ 串口参数初始化
⑤ 初始化 NVIC 并且开启串口中断,配置中断参数
这个位置要注意怎样开启中断的
⑥ 使能串口
整个配置的思路在库函数书中有详细的描述
必须在 usart.h 里面设置
EN_USART1_RX 为 1(默认设置就是 1 的)。该函数才会配置中断使能,以及开启串口 1 的 NVIC
中断。这里我们把串口 1 中断放在组 2,优先级设置为组 2 里面的最低
(这个位置中断的优先级分组又表示什么意思,有什么影响呢?有几种配置方式)
串口 1 的中断服务函数 USART1_IRQHandler
USART_SendData(USART1, USART_RX_BUF[t]); //向串口 1 发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
第一句,其实就是发送一个字节到串口。第二句呢,就是我们在我们发送一个数据到串口
之后,要检测这个数据是否已经被发送完成了
1.波特率 计算公式
2.8位数据位
3.1个停止位
4.无奇偶校验
5.无硬件流控制
6.允许收发数据