a208hlc-57526 发表于 2015-7-31 00:21:27

空闲中断只有一个字节的时长吧?怎么能调节时长呢?modbus里规定的好像是3.5字节

mark0668 发表于 2015-7-31 01:23:53

多谢分享!!!

wjandsq 发表于 2015-7-31 09:32:11

这种方式弥补ST串口没有接收FIFO的缺陷,赞一个!

JackieLaura 发表于 2015-7-31 10:04:31

谢谢楼主分享。。。水印透明的还是好点。。。

smare 发表于 2015-7-31 20:27:15

正需要这个。明天测试一下楼主的方法。谢谢

wjjontheway 发表于 2015-8-1 10:41:42

smare 发表于 2015-7-31 20:27
正需要这个。明天测试一下楼主的方法。谢谢

行,测完有什么考虑不周全的地方一起聊聊,我也只是大概弄了下,后面串口接收的时候说不定会出什么问题。我的回调函数还没有定义。

geter 发表于 2015-9-7 11:03:19

很不错的帖子

Sphinx001 发表于 2015-9-19 10:47:23

wjjontheway 发表于 2015-7-30 17:16
按HAL的回调方式写,是指在HAL_UART_IRQHandler()中添加   
tmp1 = __HAL_UART_GET_FLAG(huart, UART_F ...

你可以把HAL_UART_Receive_DMA(&huart1,rx_buffer,BUFFER_SIZE);放在 if里面 初始化也要开启一次
                        }

太阳部落 发表于 2015-12-8 18:45:33

刚刚接触这块,有个地方不明白:使能了串口空闲中断,那么没有数据接收的时候不就一直中断吗?再请教一个问题:HAL_UART_Receive_DMA这个函数如果接收的数据长度大于指定长度,这个函数会跳转到哪里?

光环 发表于 2015-12-9 16:40:00

刚接触STM32 ,试验了一下楼主程序,每次重启MCU后,第一次向mcu发送数据,收不到,从第二次以后就正常了。不知什么原因?
另外:下面不理解的地方,请教:
if((tmp_flag != RESET))
       {
                __HAL_UART_CLEAR_IDLEFLAG(&huart1);
                temp = huart1.Instance->SR;      这里的赋值是什么意义?
                temp = huart1.Instance->DR;      这里的赋值是什么意义?
                HAL_UART_DMAStop(&huart1);
                temp= hdma_usart1_rx.Instance->NDTR;            
                rx_len =BUFFER_SIZE - temp;                           
               recv_end_flag = 1;
         }
刚接触STM32,请问见笑。
页: 1 [2] 3 4 5 6 7 8 9
查看完整版本: Cube下实现串口+DMA+空闲中断接收不定长数据