你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
西奥伟 提问时间:2018-8-20 14:37 /
STM32F030C8型号的单片机,使用HAL库的串口接收中断函数,HAL_UART_Receive_IT,终端不能够正常接收到PC端串口助手,发送过来的数据,但是,终端发送给PC的命令,PC能够接收到,串口配置如下: 3.png 1.png 2.png



为什么我配置的WordLength为8;最后,出现错误的地方,还会进入到判断中?
收藏 评论4 发布时间:2018-8-20 14:37

举报

4个回答
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官方有很多例程可参考
UART_TwoBoards_ComIT.rar (47.7 KB, 下载次数: 55)

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

西奥伟 回答时间: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
参考下中断函数,函数详解就不重复了,给个实例参考下
1.png 2.png

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

西奥伟 回答时间:2018-8-21 11:17:38
feixiang20 发表于 2018-8-21 00:08
参考下中断函数,函数详解就不重复了,给个实例参考下

我现在的情况是,串口发送和接收第一次能够正常处理,然后,我第二次接收,串口的接收状态一直处于HAL_UART_STATE_BUSY_RX状态,请问是什么原因呀?
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版