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

【STM32C031评测】2.USART通讯(发送与中断接收)

[复制链接]
jundao721 发布时间:2024-3-19 07:26
       中断回来继续测试,晚上测试了一下串口通信。本以为按照常规的配置应该没什么问题,还是在软件修改上出了点问题,导致多花了一些时间。2 Q( P4 F! B, P: n

/ E# a# |3 Q9 `( d: m      开始还是使用CubeMx配置基本环境,如图1所示:2 O' }$ ~7 `5 ^
2-1.JPG 2 L  C  h+ r; R
图1$ s/ z% r3 ~8 L; U

/ v9 C' }2 k8 j+ S5 L* Y首先需要测试一下发送,隔1S发送一次,代码如下所示:
6 [, K5 h4 b; @
  1.   HAL_UART_Transmit(&huart2 ,TxData2,2,100);
    1 F) T* X( R# O3 j& U1 @
  2.                 HAL_Delay (1000);
复制代码

" J& }0 e7 X) r9 z+ E! f
/ ^; t2 @* g+ u/ S) q1 B( |, Z" A通过串口助手是正常的,如图2所示:
  W% m* P& Q% [ 2-2.JPG 4 |5 Z9 p0 r- d. _1 m' `
图2) H" ]1 m: r5 B% M/ a& |, k% s  H& U

, [( y- M( W& r$ V7 v增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示:- N7 Y- l/ O6 H
C0Debug错误2-3.JPG
' a# r3 L: e7 w% b图37 l; t" m0 D& d' ^. G7 e3 V
0 A! W' q- H; L+ q) X/ D
找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。, }9 P( e. J" I3 D$ Y7 ?- w. N
  1. if (huart->RxISR != NULL)
    2 o' o" C0 c. Z9 K# f  _
  2.       {) l* W0 R: t; [' c& u0 S
  3.         UART_RxISR_8BIT(huart);; Y7 g7 J7 ~$ ^" r
  4.       }
    7 A( a9 v  t7 u0 i
  5.       return;
复制代码

  W6 |5 M8 Q5 x8 g
+ i! M( X' E! {5 d 2-4.JPG
! s0 J1 M8 ]+ m& J/ T图4' E7 Q7 `6 g- N) h( i2 P

2 U' \8 [+ q7 F# T1 a中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。- D' Z% Q! r; s9 j, b
C0.jpg
赞 收藏 评论0 发布时间:2024-3-19 07:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版