[STM32WB] STM32WB5MMG 问题

[复制链接]
1832|11
 楼主| flycamelaaa 发表于 2024-4-25 09:00 | 显示全部楼层 |阅读模式
我使用 STM32WB5MMG 制作了一个 Demo,用于与 USB 加密狗或手机通信(BLE NOTIFICATION),并通过触发下降沿中断从 MAX30001(两个中断引脚 PC10 和 PC11,SPI1 通信)和 MAX30112 芯片(中断引脚 PD0,I2C3 通信)收集数据。但我发现了一些难以解决的问题。
问题描述: 1.
1.我的程序只有在第一次下载时才能正常运行。再次开机时,演示程序无法正常运行。
2.如果在 MX_APPE_Init() 函数中添加 APPD_Init(),且 CFG_DEBUGGER_SUPPORTED 为 0,则可以正常采集 MAX30112 的数据(断电后重启也正常)并通过蓝牙发送。但完全没有关于 MAX30001 的任何消息,我不知道问题出在哪里。
3.为此我去查看APPD_Init()函数,我发现影响最大的程序是__HAL_RCC_GPIOB_CLK_DISABLE()(上图所示)。注释掉这个语句,我就会只有第一次下载程序是正常的;不注释语句,我就只可以蓝牙接收MAX30112的数据,MAX30001失效,并且二次上电也是正常的。下图是我GPIO设置。
3.我运行了官方例程 BLE_HeartRate。运行完全正常。
4.我以前用SWV进行调试(没有添加蓝牙),只是单纯有线输出,它工作也是正常的
为解决这个问题,我该如何入手

夜阑风雨 发表于 2024-6-20 10:03 | 显示全部楼层
确保所有设备的电源供应稳定,没有电源干扰或电压波动。
一秒落纱 发表于 2024-6-20 13:00 | 显示全部楼层
检查复位电路,确保微控制器在上电时能够正确复位。
光辉梦境 发表于 2024-6-20 15:00 | 显示全部楼层
确保所有外设的时钟配置正确,包括SPI1和I2C3的时钟。
淡漠安然 发表于 2024-6-20 17:00 | 显示全部楼层
检查是否有任何时钟配置在复位后丢失或被意外修改。
暖了夏天蓝了海 发表于 2024-6-20 21:00 | 显示全部楼层
根据您提供的GPIO设置图,检查所有相关的GPIO配置是否正确,包括模式、速度、上拉/下拉等。确保在复位后,GPIO配置能够保持不变。
远山寻你 发表于 2024-6-20 23:00 | 显示全部楼层
确保中断引脚(PC10、PC11和PD0)的中断配置正确,包括中断优先级和使能状态。
三生万物 发表于 2024-6-21 02:00 | 显示全部楼层
检查中断服务例程(ISR)是否正确处理了中断事件。
别乱了阵脚 发表于 2024-6-21 06:00 | 显示全部楼层
检查`MX_APPE_Init()`和`APPD_Init()`函数中的配置,确保没有冲突或错误的配置。
江河千里 发表于 2024-6-21 10:00 | 显示全部楼层
使用SWD或JTAG接口连接调试器,逐步执行代码,检查变量值和寄存器状态,以确定问题发生的位置。
小小蚂蚁举千斤 发表于 2024-6-23 16:47 | 显示全部楼层
检查复位电路确保稳定
您需要登录后才可以回帖 登录 | 注册

本版积分规则

837

主题

4442

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部