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

关于使用 HAL Cube usart 接收 ??

[复制链接]
hpdell 提问时间:2016-5-13 22:13 /
请教下,关于 使用 HAL 的库,对串口数据进行接收时,如果我使用了2 .. ... 等串口接收时,那么是不是需要在下面的接收回调函数里面进行判断是哪个

串口 ??

UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart->Instance==USART1)
   {
       HAL_UART_Transmit_IT(huart, g_tUsart1.RxBuff, 1);  //发回给PC机显示
     
       g_tUsart1.RxCnt = 0;
       HAL_UART_Receive_IT(  & huart1, &g_tUsart1.RxBuff[0], 1);     // 接收完成后,重新开启接收中断
   }

    if(huart->Instance==USART2)    // 是不是需要这样来进行判断 ???
   {
      HAL_UART_Transmit_IT(huart, g_tUsart2.RxBuff, 1);  //发回给PC机显示
     
      g_tUsart2.RxCnt = 0;
      HAL_UART_Receive_IT( & huart2, &g_tUsart2.RxBuff[0], 1);     // 接收完成后,重新开启接收中断

   }

}
收藏 评论3 发布时间:2016-5-13 22:13

举报

3个回答
0721de 回答时间:2016-5-14 12:09:09
本帖最后由 0721de 于 2016-5-14 12:10 编辑

应该不需要
使用CallBack时你的形参时刻变化
g_tUsart1, g_tUsart2用形参传进来
代码少一半

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart,“在这加形参”)
hpdell 回答时间:2016-5-16 09:04:55
0721de 发表于 2016-5-14 12:09
应该不需要
使用CallBack时你的形参时刻变化
g_tUsart1, g_tUsart2用形参传进来

你好,我试过了,需要判断 usart1, usart2才行,
quackonchen 回答时间:2016-5-16 12:03:19
在hal_uart里面有很多函数的啊
你要根据你需要的方式来调用对应的函数吧,然后在你的应用里面去做处理

我觉得类似callback等底层是不需要做处理的,因为st都已经帮你做好了,你只需要在应用里面处理就可以了

仅仅是个人意见

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版