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

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

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

7 C0 ^* q/ G7 Z# U. [4 y5 p% W      开始还是使用CubeMx配置基本环境,如图1所示:
" z: h, E, R$ y 2-1.JPG ) R6 w0 d# ~  ~: c) r' A  {5 L' Q* M
图1+ j+ l% D2 `3 C/ E' a- f9 R7 `4 U  f

1 T; h; _* j8 V" V首先需要测试一下发送,隔1S发送一次,代码如下所示:# W  s% q. w! F9 f2 z
  1.   HAL_UART_Transmit(&huart2 ,TxData2,2,100);
    ) G( k6 n, s1 _+ p2 I3 p" e9 u
  2.                 HAL_Delay (1000);
复制代码
; M% T" ~4 g" [, h# q- j2 t

& M, d/ Z  U2 X* [' W( _  x" U* H; m通过串口助手是正常的,如图2所示:2 R0 ~4 s6 C* h: C+ j- a2 k3 [* }
2-2.JPG
$ a+ ^+ k* F0 ]4 w$ }) b7 u图28 p9 C8 Q- n$ v8 S  K6 Z# V1 s& B
" c4 A: e; d) {# }# E' a& e
增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示:
* d+ c6 \! r8 \( I7 e4 ` C0Debug错误2-3.JPG
" Y; B6 N* p: w) b5 f; d+ p图31 J  N6 \' l' k
7 s1 I0 |# C2 _
找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。% X, z) w& \. [6 P. N. e9 J- F
  1. if (huart->RxISR != NULL)0 g* M1 K* \  H7 E' w6 v0 s% w9 f
  2.       {
    , y* f; G  A. p; [. v* \+ q$ y3 S
  3.         UART_RxISR_8BIT(huart);
    1 u# Q+ e- V, W$ C& n
  4.       }! N+ k' B+ l8 `) \" j# m" B3 A/ Y
  5.       return;
复制代码

3 P. R7 n0 ?% j6 x: W* O; ~) L8 z$ z( a
2-4.JPG
, E: T. e+ p* W. j3 V图4' P3 q/ I: \2 @9 C4 E0 y$ [

3 I/ u; n1 y% L3 }$ b" H中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。( y. w) p+ h2 V+ x6 A+ d
C0.jpg
收藏 评论0 发布时间:2024-3-19 07:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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