新手上路
- 积分
- 26
- 金钱
- 26
- 注册时间
- 2017-1-5
- 在线时间
- 50 小时
|

楼主 |
发表于 2017-1-20 09:23:12
|
显示全部楼层
题目的确不大清楚,因为懂得很少,概念还没拉通,那我再研究研究,希望今天能做出来,目标是DMA串口空闲中断,之前main.c中开启HAL_UART_Receive_IT(UART,RXBUFF,1)函数,每次收一个数据,然后再HAL_UART_RxCpltCallback中计算长度并将接收的数据放入自己的数组,用OD OA来判断接收是否结束,函数内 HAL_UART_Receive_IT(UART,RXBUFF,1)。也就是有数据来就重复进入中断,接收中断就做好了。之前还有书上例程中 HAL_Delay(100); if((rxlen==(RS485_RX_CNT)) && rxlen ) 这两句不知道大家见过没,IRQHandler和read_data两个函数拿来参考 数据老是不对,各种BUG。昨天开始研究DMA,也想用接收中断的方式移植到DMA中,不过不行,设置固定长度能接收并回显,但这不能计算长度。今天早上有一思路,因为本来要用空闲中断的,二楼也提了一下,就打算DMA接收使用定长,收完后产生空闲中断计算长度。 待会儿再见! |
|