欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: MODBUS接收不定長數據只能接收第一個字符? [打印本頁]

作者: zyftank    時間: 2024-5-16 23:12
標題: MODBUS接收不定長數據只能接收第一個字符?
原程序是這樣的void USART1_IRQHandler(void)
{
if(__HAL_UART_GET_FLAG(&Uart1Handle, UART_FLAG_RXNE))
{   
         uint8_t ch = READ_REG(Uart1Handle.Instance->DR);
         WRITE_REG(Uart1Handle.Instance->DR,ch);


這樣是可以將接收到的數據完整發送出去。我的想法,是將接收到的數據保存至數組緩沖區,但是我改成以下這樣就會出現問題,只能接收到一幀數據的第一個字符,問題還未定位到。

void USART1_IRQHandler(void)
{
if(__HAL_UART_GET_FLAG(&Uart1Handle, UART_FLAG_RXNE))
{   
         RS485_RX_Buffer[g_cntRxd]=(uint8_t)(Uart1Handle.Instance->DR&(uint8_t)0x00FF);
         g_cntRxd++;



作者: rundstedt    時間: 2024-5-17 01:58
接收中斷里面應該清除相關標志位才能繼續接收。
作者: 人中狼    時間: 2024-5-17 09:50
HAL庫要接收完再啟動接收才會繼續接收的

作者: zyftank    時間: 2024-5-17 12:53
應該不是上面這個原因,應該是定時器和串口中斷的沖突導致收不到數據的。
作者: rundstedt    時間: 2024-5-17 20:29
zyftank 發表于 2024-5-17 12:53
應該不是上面這個原因,應該是定時器和串口中斷的沖突導致收不到數據的。

你原來是輪詢,繼續用這種方式好了。
作者: zyftank    時間: 2024-5-25 16:46
rundstedt 發表于 2024-5-17 20:29
你原來是輪詢,繼續用這種方式好了。

已經調試好了,是定時器初始化卡死了。




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1