完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
想要请问 我的程式在执行
PWMC_GetPhaseCurrents(oCurrSensor[MC_NUM], Iab); 会进入void HardFault_Handler(void)这个错误迴圈内就当住了! 当我用debug模式一步步查看时,发现在执行这个PWMC_GetPhaseCurrents函式时, 会先进入void MCP_WaitNextFrame 之后就会进入HardFault_Handler 我用call stack来观看,看到以下讯息 [ADC_ClearITPendingBit + 0x4c] 请问是程式哪里出问题呢? 谢谢 |
|
相关推荐
1个回答
|
|
|
从您提供的信息来看,您的程序在执行 `PWMC_GetPhaseCurrents` 函数时遇到了 HardFault 异常。HardFault 是一种严重的异常,通常是由于程序运行时出现了某些错误,如内存访问违规、堆栈溢出等。在这种情况下,我们需要逐步排查问题。
1. 检查 `PWMC_GetPhaseCurrents` 函数的参数是否正确传递。确保 `oCurrSensor[MC_NUM]` 和 `Iab` 的值是有效的,并且没有超出预期的范围。 2. 检查 `MCP_WaitNextFrame` 函数的实现。由于 HardFault 在此函数之后发生,可能与此函数的实现有关。确保 `MCP_WaitNextFrame` 函数没有访问违规的内存或执行非法操作。 3. 检查中断服务例程 (ISR) 中的 `ADC_ClearITPendingBit` 函数。从您的描述来看,HardFault 发生在 `ADC_ClearITPendingBit + 0x4c`。这意味着可能在处理 ADC 中断时出现了问题。检查 `ADC_ClearITPendingBit` 函数的实现,确保它正确地清除了相应的中断位,并且没有执行任何可能导致 HardFault 的操作。 4. 检查程序中的其他中断服务例程。确保它们没有导致 HardFault 的问题。 5. 检查程序的堆栈使用情况。堆栈溢出也可能导致 HardFault。确保程序没有使用过多的堆栈空间,或者在函数调用中没有忘记释放堆栈。 6. 如果以上步骤都无法解决问题,尝试使用更详细的调试信息。例如,使用更详细的调试器输出,或者在程序中添加更多的断点,以便更准确地定位问题所在。 7. 如果问题仍然无法解决,您可能需要检查硬件和固件的兼容性。确保您的硬件平台支持您的程序,并且固件没有与硬件冲突的地方。 希望以上建议能帮助您解决问题。如果问题仍然存在,请提供更多的代码和上下文信息,以便进一步分析。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4130 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3221 浏览 1 评论
2747 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2175 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14939 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3084浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1894浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2064浏览 3评论
1977浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2166浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:05 , Processed in 0.823213 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1608