英语原文共 3 页,剩余内容已隐藏,支付完成后下载完整资料
基于STM32 的串口通信的研究
摘要:串口是微处理器的重要外部接口。它可以用于微处理器与计算机、以及微处理器和微处理器之间的通信和信息交换。它也是调试程序的重要手段。STM32串口资源都很丰富,而且功能也很强大。一般多达5个串口,满足了通信需求。本文研究了STM32与计算机之间的串行通信。两个STM32与多个STM32之间的串口通信通过串口进行连接。这为短距离有线网络建设和信息交换提供了新思路。
关键词:串口通信;STM32;网络
介绍
串口作为一种早期的串行通信,由于其简单的接口而得到了广泛的应用。
串口可以通过适当的设置支持同步和异步通信。通信速率可以设置为300, 600, 1200、2400, 4800, 9600、19200, 115200和460800。波特率/s最大速度可达400 K。支持全双工和半双工通信。
STM32串口介绍
要实现串口通信,必须打开串口时钟,设置相应的I/O端口模式,配置波特率,数据位长度,奇偶校验等信息。这里有一些与串口配置相关联的寄存器。
串口时钟使能
串行时钟使能寄存器如图1所示。因为串口1使用PA9,PA10引脚,所以你需要把图1中的IOPARST设置为1;同样,由于要使用串口1,图1中第十四位UARTAR1RST需要设置为1。
图 1 串口时钟使能寄存器
串口控制
串口控制寄存器如图2所示。通过设置串口控制寄存器可以配置串口的收发功能,同时串口的收发会产生中断。如果图表中的 RE=1,那么串口可以接收数据;如果TE=1,那么串口允许发送数据;如果RXNEIE=1,那么就打开了串口的接收中断。
图 2 串口控制寄存器
数据收发
数据收发寄存器如图3所示,串口每次收发一字节数据。
图 3 串口接收寄存器
串口状态
串口状态寄存器如图4所示。图中的寄存器表明了串口的运行状态。例如,RXNE=1 表示接收缓存不为空,串口收到了数据。TXE=1表示发送缓存为空,也就是数据已经发送完毕。
图 4 串口状态寄存器
软件编程
在下面的设计中,在KEIL 5下用C语言编程,完成了串口的初始化、波特率及中断的初始化。下面是一部分代码:
void uart_init(u32 pclk2,u32 bound)
{
float temp;
u16 mantissa;
u16 fraction;
temp=(float)(pclk2*1000000)
mantissa=temp;
fraction=(temp-mantissa)*16;
mantissalt;lt;=4;
mantissa =fraction;
RCC-gt;APB2ENR|=1lt;lt;2;
RCC-gt;APB2ENR|=1lt;lt;14;
GPIOA-gt;CRHamp;=0XFFFFF00F;
GPIOA-gt;CRH|=0X000008B0;
RCC-gt;APB2RSTR|=1lt;lt;14;
RCC-gt;APB2RSTRamp;=~(1lt;lt;14);
USART1-gt;BRR=mantissa;
USART1-gt;CR1|=0X200C;
#if EN_USART1_RX
USART1-gt;CR1|=1lt;lt;5;
MY_NVIC_Init(3,3,USART1_IRQn,2);
#endif
}
上面的代码完成了串口1的初始化。函数MY_NVIC_Init完成了串口中断的初始化,中断分组为2,抢占模式下优先级为3,非抢占模式下优先级也为3。调用函数uart_init可以配置串口波特率为115200。
总结
本文阐述了STM32串口的工作原理,并详细阐述了串口的配置。在Keil MDK开发环境中,对串口进行编程,实现了STM32与计算机之间的通信。给出了部分代码,并调用该代码实现串口的初始化。如果代码被适当修改,可以改变串行通信的波特率,并且可以实现双机通信,甚至可以实现多机通信。
参考文献
- .Li Jing, Zhang Xiaorui. Persea nanmu Oliver, wireless LED message display system based on STM32 MCU [J], laboratory research and exploration of.2016,35 (5): 127-129.
- .Hu Sihai, Li Zhihua. Wireless temperature and humidity detection system based on STM32 and Lab [J], VIEW, China,.2015,41 (5): 99-102.
- Chen Feng, Wu Yubin, Cao Danhua. Design of EEG signal acquisition instrument based on STM32 and USB virtual serial port, [J], instrument technology and sensor.2016,12:65-68.
- Liu Chunhu, Fu Bin, Lian Lian. Multi serial remote repeater development of vehicle control system underwater based on STM32
- computer measurement and control,.2013,21 (6): 1537-1540.
- Liu Kang, Yang Lishen, Wang Lei, Zhang Anwei. Research on wireless sensor network gateway based on [J]. Computer applications and software,.2016,33 (3): 159-166. SNMP
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[22530],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。