完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
问题描述 : 我使用UART2和UART3 ,两边同时接收数据, UART2_RX数据-->UART3_TX发出去, UART3_RX数据-->UART2_TX发出去,串口发送均使 用DMA,串口接收使用空闲中断接收!
注意 : 单向收发均没问题(UART2_RX-->UART3_TX,UART3_RX-->UART2_TX),如果两边用串口工具两边同时间隔10ms发数据,就会卡 死,丢字节; 主函数代码: int main(void) { HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DMA_Init(); MX_USART1_UART_Init(); MX_USART2_UART_Init(); MX_USART3_UART_Init(); __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); __HAL_UART_ENABLE_IT(&huart3, UART_IT_IDLE); while (1) { if(Uart2_Config.Receive_Flag) //空闲中断标志 { Uart2_Config.Receive_Flag=0; //清除空闲中断标志 HAL_UART_Transmit_DMA(&huart3, Uart2_Config.RxDMABuffer, Uart2_Config.RX_Length); } if(Uart3_Config.Receive_Flag) //空闲中断标志 { Uart3_Config.Receive_Flag=0; //清除空闲中断标志 HAL_UART_Transmit_DMA(&huart2, Uart3_Config.RxDMABuffer, Uart3_Config.RX_Length); } } } |
|
相关推荐
19个回答
|
|
|
这样做的意义何在..
|
|
|
|
|
|
根本不需要这样做,设计不好冲突
|
|
|
|
|
|
我估计楼主的用意是用于通讯中反馈对方发送的数据包,但是一般的做法是通过通讯协议来解决的呀
|
|
|
|
|
|
|
|
|
楼主看一下串口是否发生了溢出,如果是需要进行初始化。
|
|
|
|
|
|
|
|
|
|
|
|
一般会有什么协议,我这个就是双向要求发送的比较快, 一般10ms定时互发 |
|
|
|
|
|
看的是串口溢出寄存器。
|
|
|
|
|
|
|
|
|
|
|
|
仿真暂停,用软件看。或者串口输出寄存器的值。
|
|
|
|
|
|
Cbue Hal下 是用HAL_UART_GetState(UART_HandleTypeDef *huart);这函数调吗?程序卡死 在什么地方调? 是在卡死的地方调吗? |
|
|
|
|
ebcoelectronics 发表于 2018-11-6 12:54 设全局变量,例如Debug_FLAG, 在你觉得可能出错的地方给Debug_FLAG赋值, 打开Keil的DEBUG,在Watch窗口添加变量Debug_FLAG, 然后看卡死的时候Debug_FLAG的值是多少,最后反过来查。 我是这样子查错的 |
|
|
|
|
|
好帖,必须支持一下!
|
|
|
|
|
|
难道不能在线仿真吗?通过仿真,查看各个寄存器的值,变量的值
|
|
|
|
|
|
本帖最后由 tianyukobe 于 2016-10-14 23:09 编辑 程序会卡在这while(Uart2_Config.DmaSend_Flag == USART_DMA_SENDING); 也就是回调函数不是百分百的能清除标志,我以为10ms双向发太快了,改成20ms,效果会好一点 但是还是会卡死 |
|
|
|
|
|
|
|
|
计算一下波特率发送一组数据需要的时间。
|
|
|
|
|
|
帮顶了!
|
|
|
|
|
|
.......................................不明白。
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:52 , Processed in 1.140112 second(s), Total 108, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3997