基于51单片机i2c多字节的读写
使用Keil的编译环境下载,确实能够下载,但是入口的地址是如下黄色的那行显示所示,如果单步执行(F11)或全速运行(F5),程序始终在原位置不动(0x1FFF4252),如果强制的将PC指针的值和SP的值修改为
0x8000000与0x2000000,然后在点击运行,则能够跑到main()函数,再全速运行,能够看到客户板子上的LED灯的闪烁。
但是如果不强制修改PC和SP指针的值,则程序不执行。
所以问题就变成为什幺程序下载进去后的地址是
0x1FFF4252?0x1FFF4252又是什幺地址呢?查阅相应的手册,发现
0x1FFF4252是处在了Systemmemory区域。
用万用表测量了客户板上的Boot0引脚的电平,发现电平不对,达到1.6V,这幺高的电平可以被视为高电平了。
对照客户的原理图,原来Boot有上拉和下拉的电阻,焊接的时候将这两个电阻都焊接上去了,去掉上拉电阻,使的BOOT0的引脚接地为低电平,再编译下载进入Keil的环境,程序能够被正常执行了。
问题找到了。