这两天调试F030的串口,cubemx配置,2400波特率、8、1,HAL库,用(HAL_UART_Receive_IT(&huart1,(uint8_t *)aRxBuffer,1),启动中断,接受1字节,进入回调函数,后续需要在回调中处理帧识别等操作,发现串口中断接受只能收前2字节数据,从第3字节起变为00,很是烦恼 int main(void) { xxxxxxx if(HAL_UART_Receive_IT(&huart1,(uint8_t *)aRxBuffer,1)!=HAL_OK) Error_Handler(); while (1) { if(Uart1Ready_R==SET) { Uart1Ready_R=RESET; Txtemp[0]=Rx_count_UART1; Rx_count_UART1=0; Uart1_Send(Rxbuff, 10); memset(&Rxbuff, 0, sizeof(Rxbuff) / sizeof(uint8_t));//缓存清理 } } } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if( huart == (&huart1)) { UNUSED(huart); Rxbuff[Rx_count_UART1]=aRxBuffer[0]; Rx_count_UART1++; if(Rx_count_UART1==10) { Uart1Ready_R=SET; } HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, 1); } } |
【STM32F0开发日志/评测/笔记】+互补PWM波的产生
STM32F030 PB14和PB15无法输出PWM求助
【STM32F030探索套件】序列之五 外部中断
【STM32F0开发日志---二】+ucosii.2.92移植在STM32F030
上传个STM32F0+5110+内部温度传感器的菜鸟实例
【STM32F030探索套件使用问题】STM32F030 SPI方式驱动ST7565LCD失败
求一份STM32F051 I2C驱动LCD 12864的例程
STM32F0 M0 向结构体赋值进入HardFault异常
STM32F0 ADC-DMA方式采集2路数据时出现问题
STM32F030C8T6,TIM16定时慢很多问题?
__HAL_UART_CLEAR_IDLEFLAG(&huart1);
__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
试试看
参考
评分
查看全部评分
你调试好了么,加了这两句,还不行,卡机触发关门狗reset了
https://www.stmcu.org.cn/module/forum/thread-620624-1-1.html
參考我这个不定长也可以,但是最大值时要重置,我用的STM32F030F4P6
还有一个比较好的我先整理下
评分
查看全部评分
感谢各位,此问题暂时已经解决,实际上数据已经成功接收了,问题出在发送返回的时候,因为使用中断发送,然后立即清理缓存,此时刚发送2个字节,后面的字节还未发送是就被清理掉了。后续按需要加入帧的检测再测试看看。
Uart1_Send(Rxbuff, 10);
memset(&Rxbuff, 0, sizeof(Rxbuff) / sizeof(uint8_t));//缓存清理
评分
查看全部评分