21年定位模块项目国产化替代STM32遇到的时钟问题
[复制链接]
分享一个几年前的开发的一个小模块,
21年左右吧,当时设计一个定位小模块,其实功能很简单,大致如下
定位模块是北斗GPS双模的模块
当时正好是MCU芯片荒,STM32F103CBT6已经涨了应该是百元,实在是扛不住了,于是开始寻找国产替代,发现了航顺的HK32F103CBT6
当时如获至宝,赶紧网上买了几十个,当时水涨船高,国产的也涨价了,当时比ST的还是便宜的
于是开始焊接测试,因为号称软硬件兼容的
上机后,功能却无法正常运行,连基本功能都没有实现,看来程序是没有跑起来
那时候正好是缺芯火热的时候,一度怀疑自己买的是假货,钱都花了,只能硬上了
由于网上买的也没有原厂的技术支持
只能自己找原因,最后定位问题点肯定是时钟出了问题,晶振没有起振
于是开始网上搜各种HK不起振的原因,终于找到一个分享
HK的需要将22降低为12
可惜高兴的太少,硬件改了之后还是没有运行起来
单步调试仿真,发现已经能够进入systeminit函数
说明硬件应该没问题,继续往下调试
发现HSEStatus标志位一直没有置起来
会不会是等待时间不够
于是自己开始调试这个时间
大概把等待时间增加了 四五倍,晶振终于通过了
依旧高兴的太早了,晶振通过了,但是程序飞了
继续复位开始单步运行,发现程序在运行到这差不多飞了
查看参考手册
也没有发现问题
只能继续网上搜索
网上搜到了下面的要求
真的是一波三折,搞个时钟折腾了好几天
还是实现了定位模块的通讯
最好只能将就用用了,国产的道路任重道远啊~~
|