西奥伟 发表于 2018-8-20 14:37:36

STM32F030C8型号的单片机,使用HAL库的串口接收中断函数

STM32F030C8型号的单片机,使用HAL库的串口接收中断函数,HAL_UART_Receive_IT,终端不能够正常接收到PC端串口助手,发送过来的数据,但是,终端发送给PC的命令,PC能够接收到,串口配置如下:



为什么我配置的WordLength为8;最后,出现错误的地方,还会进入到判断中?

wenyangzeng 发表于 2018-8-20 14:53:46

本帖最后由 wenyangzeng 于 2018-8-20 15:01 编辑

stm32f0xx_it.c里:
void USARTx_IRQHandler(void)
{
HAL_UART_IRQHandler(&UartHandle);
}



USART中断返回函数应该是这样写的:

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)
{
/* Set transmission flag: trasfer complete*/
UartReady = SET;
}

同时,主函数里要添加一句:__HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE);

ST官方有很多例程可参考



西奥伟 发表于 2018-8-20 15:49:06

wenyangzeng 发表于 2018-8-20 14:53
stm32f0xx_it.c里:
void USARTx_IRQHandler(void)
{


多谢,你的例程

feixiang20 发表于 2018-8-21 00:08:29

参考下中断函数,函数详解就不重复了,给个实例参考下

西奥伟 发表于 2018-8-21 11:17:38

feixiang20 发表于 2018-8-21 00:08
参考下中断函数,函数详解就不重复了,给个实例参考下

我现在的情况是,串口发送和接收第一次能够正常处理,然后,我第二次接收,串口的接收状态一直处于HAL_UART_STATE_BUSY_RX状态,请问是什么原因呀?
页: [1]
查看完整版本: STM32F030C8型号的单片机,使用HAL库的串口接收中断函数