一次单片机 SFR 页引发的“事故”
一次单片机 SFR 页引发的“事故”
现象
需要使用单片机的 ADC 功能,在对 ADC 初始化后,根据内部分的 IVREN 计算出 VDD 的电压值 。
在读取时一直显示 ADC 异常的高。
排查分析
先把所有其它任务去除,只留下一个 读取 VDD 的功能,发现还是异常高。
然后把 IO 初始化,主频初始化,外设初始化全部拿掉。
只留下一个 ADC 初始化,现在可以读出正常的值,这下比较放心了,硬件是没有问题的。
然后把一个一个任务加回去,加到 IO 初始化时发现 ADC 值异常了。
接着对 IO 初始化全部注释,再一个一个加回去。
最后排查到因为在换 SFR 页后修改寄存器后没将 SFR 页改回,然后在 ADC 初始化时也没有先设置一下 SFR 页,导致 ADC 初始化出错。
所有文章为原创,如非授权,请勿转载。
我们要多多支持有创造能力的人,因为那是我们所有人的希望。
同时我们也希望成为有创造能力的人,我们支持开源,同时也支持正版。
🎈数码荔技正版软件商店🎈
【正版】微软 Office 365
【正版】老牌文件对比工具 Beyond Compare
【正版】JetBrains Idea Java IDE
不断学习,慢慢进步,做时间的朋友。
注意力 > 时间 > 金钱。 -- 建伟 F4nniu
我们要多多支持有创造能力的人,因为那是我们所有人的希望。
同时我们也希望成为有创造能力的人,我们支持开源,同时也支持正版。
🎈数码荔技正版软件商店🎈
【正版】微软 Office 365
【正版】老牌文件对比工具 Beyond Compare
【正版】JetBrains Idea Java IDE
不断学习,慢慢进步,做时间的朋友。
注意力 > 时间 > 金钱。 -- 建伟 F4nniu