本帖最后由 pengduanhuan 于 2021-8-18 22:50 编辑
大家好:
最近在做项目时,对STM32F103系列的单片机开发设计,发现在上电完成后,该CPU做初始化过程中通过位与给TIMER1的CH3通道的CCMR2寄存器赋值,发现在初始化完成后,寄存器值发生了改变(小概率事件),想请教下可能有哪些原因?1. BOOT过程异常引起?
2. 上电过程异常,包括上电电压不稳或者时序错乱,纹波噪声等引起?还有就是如硬件复位如果过短可能影响到自举过程,进而对应用程序产生影响,如果真是这样,也就意味着在该寄存器写入操作时及之前的应用程序操作的寄存器也可能受到影响,除非该寄存器是出现在应用程序的首处;
3. 温度等外界环境影响到如内部时钟HSI之内的正常工作,比如该寄存器读写工作时的内部或外部时钟异常引起赋值错误?晶振频偏过大?
上述提到的第2,3点这些都可以实测,但是需要现在理论上先假设分析可能性;
目前还在查询手册一步步分析,思路:
可以看一下片内时钟分布,尤其是该寄存器相关的时钟源分布,确定CCMR2在哪个储存区,由片内哪个时钟支持其赋值工作? 理清BOOT过程,分析潜在的原因;
但是这边想尽快分析出原因,所以最好是有经验的坛主分享下经验
|