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

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

[复制链接]
jundao721 发布时间:2024-3-19 07:26
       中断回来继续测试,晚上测试了一下串口通信。本以为按照常规的配置应该没什么问题,还是在软件修改上出了点问题,导致多花了一些时间。
& |/ T3 |+ m. |  R7 b/ v6 p5 u  R7 G( F
      开始还是使用CubeMx配置基本环境,如图1所示:1 {3 }+ o2 Y' M" J! N7 e+ C
2-1.JPG
3 X8 z5 j( S2 a; r& j图1
2 y6 T, q. ~$ ^& C( z; e2 N0 h
2 Q# m1 Y" [7 d首先需要测试一下发送,隔1S发送一次,代码如下所示:; r) X- L3 ?% C& @
  1.   HAL_UART_Transmit(&huart2 ,TxData2,2,100);5 D( J- S+ N; f- }$ q
  2.                 HAL_Delay (1000);
复制代码

: ?# \0 A6 [. W
  c5 G" X; ^# A8 Z* |通过串口助手是正常的,如图2所示:
3 U+ s5 C* T  D+ s 2-2.JPG 6 x2 t6 H0 n# r: r
图20 X4 k- g# j3 Y/ D
$ d; {' s& M6 L/ |) m
增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示:5 W$ J7 h1 z; f. Z* U4 \
C0Debug错误2-3.JPG 2 s9 U) Y/ r4 m# m
图3. T* A: X4 _9 c% i; h* L

; ~8 ^: x- W% F3 f/ k找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。; Y, `; F0 z( p" ]: Z$ o, V) \  S
  1. if (huart->RxISR != NULL)& \! ]% i# m. p2 \2 L2 [7 b4 t/ A
  2.       {
    + p  U/ D' ^/ K* H9 j
  3.         UART_RxISR_8BIT(huart);* x9 ~7 p+ `6 F& {
  4.       }3 _, p3 Y* k$ e* d( R" s* o2 m
  5.       return;
复制代码

9 \/ q& ^* K2 K& x# Z% ~* M: O5 T/ R2 p3 z' r) g! w; s
2-4.JPG
7 m* z1 F6 Q6 K1 N$ [图4
3 B0 J; P* n# Q' r7 x1 ^
# i! c+ E! r$ b: r. ]4 @中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。" N( F2 S  c2 i" ?5 s/ l( h1 [. a
C0.jpg
收藏 评论0 发布时间:2024-3-19 07:26

举报

0个回答

所属标签

相似分享

官网相关资源

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