大学生
最后登录1970-1-1
在线时间 小时
注册时间2020-7-4
|
楼主 |
发表于 2020-11-20 17:28:30
|
显示全部楼层
找到原因了,我之前发射端是这样写的
HAL_GPIO_WritePin(WBUS2_CTL_GPIO_Port,WBUS2_CTL_Pin, GPIO_PIN_RESET);//设置发射使能
HAL_UART_Transmit_DMA(&huart3, buff_temp, 6);
HAL_Delay(1);
HAL_GPIO_WritePin(WBUS2_CTL_GPIO_Port,WBUS2_CTL_Pin, GPIO_PIN_SET);
后面我改成
HAL_GPIO_WritePin(WBUS2_CTL_GPIO_Port,WBUS2_CTL_Pin, GPIO_PIN_RESET);//设置发射使能
HAL_UART_Transmit_DMA(&huart3, buff_temp, 6);
while(HAL_UART_GetState(&huart3) != HAL_UART_STATE_READY);
HAL_GPIO_WritePin(WBUS2_CTL_GPIO_Port,WBUS2_CTL_Pin, GPIO_PIN_SET);
然后接收端收到数据不用加延时也能正常发送数据。
另外发现接收端将重新设置接收放在while{ if(收到数据){设置接收} }会出现偶尔收不到数据的情况,把重新设置接收放在while中if外面,没出现这种现象 |
|