1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
2.1程序规划
演示程序的功能:通过中断接收串口数据,在1750us时间内没有收到新的字节的话,将收到的数据原封不动地发送出去,以测试串口的完整收发流程。 2.2 函数说明 STM32CubeMx自动生成的初始化函数,这里不再做说明。 (1)HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 对于这个函数,认为这是一个配置函数,配置串口号、接收缓存区的指针和每次接收的数量,并使能接收中断。 图2-1是此测试程序的该函数的调用,每次接收一个字节,存在ucUartTempBuf中。 图2-1 (2)HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart) 此函数在串口的中断服务程序中调用,作用是将接收到的字节放到接收缓存区,判断整个数据是否已接收完整(是否已达到配置的数量),接收完整的话调用HAL_UART_RxCpltCallback(),并禁止接收中断。 (3)HAL_UART_RxCpltCallback() 此函数是一个回调函数,需要用户编写,在此函数中,可以将收到的数据进行转移,如果需要继续接收的话,还要再次调用HAL_UART_Receive_IT(),由于这个回调函数有可能会被多个串口中断服务程序调用,因此在函数中需要区分串口。 此篇文章的测试程序中,在此函数中启动定时器,用于1750us的定时。代码如图2-2所示。 图2-2 (4)HAL_TIM_PeriodElapsedCallback() 此函数是一个回调函数,当定时器产生溢出中断时调用,需要用户编写,此测试程序中,定时1750us的时间到,说明一个完整数据帧已接收完成,调用HAL_UART_Transmit_IT()函数,将收到的数据,原封不动地发送回去。 图2-3 (5)HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 认为,此函数也是一个配置函数,将发送数据指针和数量赋给相应的寄存器,然后使能发送缓存区为空中断,以便通过中断的方式将数据逐个字节的发送出去。 (6)HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart) 此函数在uart的中断服务程序中调用,将数据发到uart硬件缓存区,并监视已发送数量,发送数量达到目标值后,禁止发送缓存区为空中断。 2.3 函数调用顺序 函数调用顺序如图2-4所示。此图只是大体上展示了各个函数的调用顺序和调用关系,并不完全准确,由于中断的存在,有的进程是并行进行的。 图2-4 2.4 测试结果 准备两帧数据:01 03 00 00 00 0A C5 CD; 01 10 00 00 00 05 0A 00 01 00 02 00 03 00 04 00 05 EA 6A; 各发送两帧,查看目标板的回复数据,如图2-5所示。自此,uart的收发流程就演示完毕,这也类似于Modbus串口通信的一个基本框架。 图2-5 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1767 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1069 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 00:09 , Processed in 0.827301 second(s), Total 76, Slave 60 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号