新手上路
- 积分
- 46
- 金钱
- 46
- 注册时间
- 2019-4-25
- 在线时间
- 11 小时
|
实在无能为力了,只能请教大家了:我用Jlink的SWD模式调试STM32F103RCT6的板子,RCT6的SPI3[PB3=SCK,PB4=MISO,PB5=MOSI]连NRF24L01,程序是以前调好的,禁用了JTAG的,上电可初始化NRF,收发正常;现在连上Jlink单步调试一下发现NRF不能初始化了,示波器测SPI3的MOSI有信号,SCK无信号,其他IO(CE,CSN..)正常有信号,称为坏程序吧;
我果断换了以前测试成功的程序,断点调试一切正常,能初始化NRF,就叫好程序吧;
后来我把两个NRF初始化程序以及相关子函数都换成一样的,诡异的事情发生了(实际上这才是真现象):
1.先烧坏程序再烧好程序调试,则好程序不能初始化(NRF);
2.换个先后还是不能初始化;
3.只有断电后再烧好程序调试可初始化;
4.断电后烧坏程序不能初始化;
后来我干脆把PB3当IO测试,发现IO和SPI3异常得一样;下图是两个工程的对比截图:
我换成F103V8T6的核心板,也是一样;
个人愚见是坏程序让芯片进入了一种错误的模式,这种模式重烧程序不能退出,只有断电才能退出。想请大家帮帮忙,谢谢啦。
|
|