• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

LAT1376 启用“实时观察窗口”导致通讯出错的案例分享

2025/03/19
329
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1376 启用“实时观察窗口”导致通讯出错的案例分享

1.12 MB

前言

通常我们使用的 IDE 在调试时都支持在程序运行过程中实时观察窗口内容的功能,当启用这个功能后,实时观察窗口中包含的寄存器或变量的值会被周期性或重复性的进行采样,进而实现窗口内容的实时更新。但是这个功能使用不当的话可能会导致一些问题,下面我们介绍这样一个外设通讯出错的案例。

问题描述

客户在使用 STM32H723 的 SPI 外设进行通讯时,通过逻辑分析仪抓取到的总线数据是正确的,但是实际接收到的数据却为 0。这种情况每隔一段时间会出现一次,这个间隔时间不是固定的。客户的测试是使用 Keil MDK 在调试状态下进行的。

SPI 相关知识

SPI_SR_RXP 寄存器位由硬件进行管理。当RxFIFO 包含至少一个完整的数据帧时,SPI_SR_RXP 位为 1,否则为 0。

问题分析与测试

客户抓取 SPI 总线上的数据是正确的,但是读取到的数据为 0 的情况,这很可能是由于在 SPI_SR_RXP 为 0 的时候读取了 SPI_RXDR 寄存器。下面就这个推测对 SPI_SR_RXP进行测试。

小结

这个案例提醒我们,如果使用了可以通过读操作进行更新的寄存器时,最好在调试时慎用“实时观察窗口”来观察其值,因为这可能会影响程序的正常执行。这个“PeriodicWindow Update”的调试功能不是 Keil 独有的,在 IAR 中的"Live Watch"窗口以及CubeIDE 中的"Live Expressions"窗口都是“实时观察窗口”的功能,所以在使用时也要注意下。

在线预览

相关推荐

意法半导体拥有49,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一 家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、成千上万名合作伙伴一起研发产品和 解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需 求。意法半导体的技术让人们的出行更智能,让电源和能源管理更高效,让云连接的自主化设备应用更广 泛。我们正按计划在所有直接和间接排放(包括范围1和范围2)、产品运输、商务旅行以及员工通勤排 放(重点关注的范围3)方面实现碳中和,并在2027年底前实现100%使用可再生电力的目标。 详情请浏 览意法半导体公司网站:www.st.com.cn