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

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

[复制链接]
jundao721 发布时间:2024-3-19 07:26
       中断回来继续测试,晚上测试了一下串口通信。本以为按照常规的配置应该没什么问题,还是在软件修改上出了点问题,导致多花了一些时间。
7 t4 ^2 C  c" \1 O. F  H: R! E  @7 w) M* P% @! k% X! e# R4 y, n
      开始还是使用CubeMx配置基本环境,如图1所示:0 h3 ]* ?4 K  R7 R& i
2-1.JPG
) m! N9 {' |9 w图1
2 I* M& G9 }9 @+ U$ Y: n  t9 A; \/ D2 Z8 R" P& j( o& _& |
首先需要测试一下发送,隔1S发送一次,代码如下所示:# @/ z; G5 e% {; G& ~5 K/ U
  1.   HAL_UART_Transmit(&huart2 ,TxData2,2,100);
    . g' O* b4 E; A1 k
  2.                 HAL_Delay (1000);
复制代码
& J. I: f3 [7 W" F

/ q9 `" r/ O+ J# A8 }通过串口助手是正常的,如图2所示:
4 L7 _2 w% i3 p% E- S: s: T' S6 ~ 2-2.JPG   m1 @  e* w# V/ h+ t- m8 h
图23 R0 n2 r+ P) e' `$ e# D1 b3 b) H

" }4 N: G  U" w! h; t# L" j+ y增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示:
( _+ r% g* q& F) w' O  ^ C0Debug错误2-3.JPG
0 S2 B4 V) C. i0 B0 `9 f/ x' h图3
# }8 C  N! ?8 O# V1 b; e3 ]
8 Z9 k8 C# E) s. Z, T: H找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。
, z7 F* [& T! |3 D+ g0 ^
  1. if (huart->RxISR != NULL)* @6 G: a' i+ @0 I. J
  2.       {, j$ f1 X8 j+ S) Q# k
  3.         UART_RxISR_8BIT(huart);
    / d9 w9 }# j! O3 s8 w, c* _1 e& ^+ e
  4.       }
    9 j8 f7 |! K9 C8 K$ k
  5.       return;
复制代码
2 u' w. C" U5 a2 e

# l" ~0 n/ \+ m 2-4.JPG " f, Q- _/ v5 s8 T7 M5 x
图4
9 h5 B/ n/ j8 t  y7 k4 X
7 X: B5 ^8 b* |0 `5 v/ ]中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。
+ l- X! ?8 V- I1 @/ D
C0.jpg
赞 收藏 评论0 发布时间:2024-3-19 07:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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