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

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

[复制链接]
jundao721 发布时间:2024-3-19 07:26
       中断回来继续测试,晚上测试了一下串口通信。本以为按照常规的配置应该没什么问题,还是在软件修改上出了点问题,导致多花了一些时间。! i; d) \3 q/ a, s' w  W
5 p; m0 Y* y4 Y' @
      开始还是使用CubeMx配置基本环境,如图1所示:
. a& m# ?$ P8 q) d 2-1.JPG
1 ^  x5 `9 L2 S/ L  K图1( o9 W8 n# y5 R( D1 S% o& d

8 e8 k% i4 S- h$ A- J首先需要测试一下发送,隔1S发送一次,代码如下所示:
, `. Z% l) k2 _, E# O" P' D
  1.   HAL_UART_Transmit(&huart2 ,TxData2,2,100);' J& g5 n1 W1 Z/ J$ \1 \0 F
  2.                 HAL_Delay (1000);
复制代码

; @: F9 Z* }, h# D
, Z9 n8 N& H3 I# `$ X通过串口助手是正常的,如图2所示:3 B  h4 j) R8 r
2-2.JPG ; z& c+ W; F3 a' a1 `
图2
4 z+ {, ?% t% Z8 M
, X- y# }1 G, A- d2 V6 A增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示:
3 @( `" k4 h- l/ F- \' y' a$ M$ \ C0Debug错误2-3.JPG
) c4 u5 K) ^9 n2 I6 B; F图3
# U. P( D1 i# u& K$ u9 A- I" H4 ^; a2 W' s9 k( o1 v* Y
找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。- U* `9 ], G2 j$ x5 k
  1. if (huart->RxISR != NULL)& R, X3 q2 s  ?1 [$ ^1 L3 c7 ]
  2.       {
    ' u; }) v4 a" n3 p2 W
  3.         UART_RxISR_8BIT(huart);
    0 a0 i# u! N! V1 ?* B) m
  4.       }
    ' K" o' r- b* S# ^$ k
  5.       return;
复制代码
% A# _9 d* x$ W5 r

, _. c2 c2 p1 W% O- e& k 2-4.JPG
% d* N5 Q- L6 j: ]: [9 ~( R4 G图4
% s1 F' b) M5 V3 i0 X# `% c( s6 g* M
中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。
7 d- Q) ~% C8 {, N$ x; N
C0.jpg
收藏 评论0 发布时间:2024-3-19 07:26

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版