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

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

[复制链接]
jundao721 发布时间:2024-3-19 07:26
       中断回来继续测试,晚上测试了一下串口通信。本以为按照常规的配置应该没什么问题,还是在软件修改上出了点问题,导致多花了一些时间。" N4 U; N6 H9 c2 S" e# C1 c

% e& z6 W' X! `. H" x4 v# W& m. `      开始还是使用CubeMx配置基本环境,如图1所示:
1 K" D' F! ^' `4 y* ~6 ] 2-1.JPG
, Q( z9 b4 ^, e1 I1 ^1 w. G图10 Z- ^# [$ L$ i) q% u
% v* M0 X& G2 @; v3 h
首先需要测试一下发送,隔1S发送一次,代码如下所示:# o! m) V: q2 k/ f) u
  1.   HAL_UART_Transmit(&huart2 ,TxData2,2,100);
    ) z: L4 s; h1 m0 N
  2.                 HAL_Delay (1000);
复制代码
2 s% D' x8 H6 u  Y0 Y
/ p' |/ E) ]2 z6 O
通过串口助手是正常的,如图2所示:2 b3 u: R1 @, W
2-2.JPG 6 F3 w' g# F6 E) F+ I0 |  o, C
图2
; q1 P% x% R- n
% |* [( ]* f. }/ |; B$ s增加接收数据callback函数,检查一下中断,debug。发现无法进入中断。设置断点检查,发现能进入Handler函数,却无法调用callback函数。Debug时弹出一些莫名其妙的错误,如图3所示:
7 a. I& {, Z5 d: o! u. u C0Debug错误2-3.JPG
  T6 w4 Q/ p- q. K4 r( |/ o, e: C图3
2 s( O( u1 q  K' {
% h, F$ `) Y/ D0 Y3 S% ?找到Handler函数的定义,发现接收完中断函数使用的是huart->RxISR(huart);其中并未调用callback函数,故将这个函数修改为UART_RxISR_8BIT(huart);,重新debug。通过串口助手发送数据,查看watch窗口,可以看到接收到的数据,如图4所示。
4 m. c& `0 T8 |9 ~9 W3 f
  1. if (huart->RxISR != NULL)( p4 ^4 t  l/ w+ D4 k0 G
  2.       {7 n8 ^1 w. W$ R' W
  3.         UART_RxISR_8BIT(huart);1 s6 P; ^" f- q" j
  4.       }
    ; H9 m- y7 ?: o  a# B! {% S
  5.       return;
复制代码

8 ]" U, w3 N  Y' Y
9 Q% W3 P' [3 F 2-4.JPG / h. [, l" I2 |1 H+ G2 X3 \
图4; N! S  U% S8 H0 v$ [
  V6 d) X) {. o2 D! G" ]' k
中断接收正常。所以由Cubemx生成程序的时候,还需要再检查一下。
2 R% Y9 p! M: t; \/ D& a+ |# k: i
C0.jpg
收藏 评论0 发布时间:2024-3-19 07:26

举报

0个回答

所属标签

相似分享

官网相关资源

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