[STM32F1] 写eeprom会影响到pwm的输出

[复制链接]
1218|20
 楼主| pangb 发表于 2021-5-5 17:04 | 显示全部楼层 |阅读模式
最近做pwm调光的项目,发现写eeprom的时候等轻微的抖动了一下,屏蔽掉写eeprom工作就正常了,感觉像是芯片的问题,写eeprom的时候单片机cpu停掉了,导致pwm输出抖动,不知道有什么方法解决?
zchong 发表于 2021-5-5 17:07 | 显示全部楼层
别感脚,要验证
chenjunt 发表于 2021-5-5 17:20 | 显示全部楼层
说是有办法解决的,不过没有你想象的那样简单
大概描述一下,
1 eeprom操作之前,把中断向量表和PWM服务程序都放在RAM
2 调整系统终端时跳转的位置(指向RAM)
3 操作eeprom
4 完成后恢复之前的状态
ousj 发表于 2021-5-5 17:23 | 显示全部楼层
不如上个几毛钱的24c0x...
 楼主| pangb 发表于 2021-5-5 17:24 | 显示全部楼层
不是很明白你说的这种方法,没有做过这方便操作,希望有些资料,谢谢!
morrisk 发表于 2021-5-5 17:44 | 显示全部楼层
很少有你这样需求的,一般操作eeprom都是不能有干扰的。一旦有干扰(尤其是中断),就会崩溃
dingy 发表于 2021-5-5 17:45 | 显示全部楼层
现在是由于写eeprom,影响到了pwm的输出,导致灯闪,这是最不能接受的,写eeprom时候一般会开关总中断,不至于让写eeprom崩掉。
xxmmi 发表于 2021-5-5 17:47 | 显示全部楼层
因为你要关中断,所以PWM会受影响
kangzj 发表于 2021-5-5 17:49 | 显示全部楼层
在主函数里通过IO操作应该可以避免吧。
 楼主| pangb 发表于 2021-5-5 17:52 | 显示全部楼层
通过io?能说的详细点?
kangzj 发表于 2021-5-5 17:58 | 显示全部楼层
pwm要使用定时器产生的硬件输出,不要软件模拟产生。常识。
dingy 发表于 2021-5-5 18:00 | 显示全部楼层
根据你的描述,PWM使用软件实现的吗?
huanghuac 发表于 2021-5-5 18:02 | 显示全部楼层
建议用定时器硬件输出实现,就不存在收到干扰的情况
 楼主| pangb 发表于 2021-5-5 18:05 | 显示全部楼层
哦,那我就知道怎么回事了,多谢大家
guanjiaer 发表于 2021-6-1 13:23 | 显示全部楼层
不是很明白怎么抖动了
heimaojingzhang 发表于 2021-6-1 13:25 | 显示全部楼层
关闭中断为什么会影响pwm啊
keaibukelian 发表于 2021-6-1 13:34 | 显示全部楼层
会不会地址指向有问题啊
gdszzyq 发表于 2021-6-1 13:44 | 显示全部楼层
写FLASH时CPU是停止工作的,大概停止几十毫秒吧,你关不关中断都一样,解决办法就是PWM停止时写FALSH。
gdszzyq 发表于 2021-6-1 13:46 | 显示全部楼层
huanghuac 发表于 2021-5-5 18:02
建议用定时器硬件输出实现,就不存在收到干扰的情况

没用的,CPU都停止工作了。其实应该是总线挂起了吧。
labasi 发表于 2021-6-1 13:59 | 显示全部楼层
是不是地址冲突了 啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

7643

帖子

6

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