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

关于使用 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个回答
stmcuman 回答时间: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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版