完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现象如下,调整上述代码中的设置基准(PWM信号占空比)超过一定值(CathodeWorkPar.OutRefValue数据值超过80),单片机仿真进入硬件中断,后面进行了以下测试;
1、程序分为BootLoad和APP两个部分,如果单独只烧录APP程序(更改起始地址),程序可以正常运行,给入任何占空比程序工作正常; 2、更改PWM输出通道,程序运行正常; 3、减小单片机启动文件中的堆或者栈的分配空间,程序也能恢复正常工作;这点我不太能理解,起初我是增加了栈的空间,后来测试发现不行,然后减小后发现工作正常,后保持栈空间不变减小堆空间发现也能工作正常,这是不是表示我程序的RAM溢出了啊,实际看编译结果两个程序应该只用了15k左右,选的单片机程序时20k的; 现在问题已经通过优化程序解决,就是这个问题点一直想不明白,有了解的大能麻烦指导下 |
|
相关推荐
1个回答
|
|
一般进入harfault中断,可以通过查询进入中断前的函数进行查找。这种情况大多是数组溢出导致。堆栈的调整,可能会导致你数组地址的变化。正好PWM用的数组溢出后进入MCU用到的空间,把数据内容给覆盖导致。我也多次操作复现这种情况,甚至超出数组范围也不一定每次能复现。建议看一下MAP文件中,你用到数组的地址,和堆栈调整后的地址是不是不一样。
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1658 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1568 浏览 1 评论
996 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
695 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1616 浏览 2 评论
1876浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
660浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
528浏览 3评论
546浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
517浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 17:35 , Processed in 0.868500 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号