<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
购买的是康威科技的AD9854模块,实际上来说商家提供的代码例程与备注是远远没有淘宝另一家绿板的来的详细与认真的,对于移植标准库的代码到HAL库,本次开发也许会给以后的其他代码移植带来灵感。
1.分析商家代码
打开商家给的代码,会发现有四份自己定义的文件
其中,AD9854.c和AD9854.H是有关AD模块的代码,同时,关于模块需要使用到的单片机引脚的定义与初始化函数也包含其中。
而sys.c与sys.h则是关于单片机系统初始化的代码,这一部分,在标准库的开发中,都是需要用户自己调用库自己写的,而HAL库在一开始就已经为用户生成好了。因此,这部分代码可以直接删掉,只保留前段的AD9854就可以了。
在代码移植过程中,也是吃了不了解标准库开发流程的亏,一直保留着sys的代码并希望通过修改使其跑通,这实际上是画蛇添足、并不可行的。
回过头来看AD9854的代码

头文件中有几行对于各个GPIO端口引脚的宏定义,类似于这样的宏定义,HAL库已经为我们生成好了,因此为了防止各种意外bug的出现,不要使用他的代码,我们直接将他们修改为HAL库代码


在此要注意,为了方便起见,我们将几个在用户手册中明确标注相对重要的引脚在cube配置时给它赋上名字,而剩下来的一长串的数据引脚我们不要给名字并且全都放到同一个GPIO组中,这里我是用的GPIOC组,同时注意输出速率选择HIGH,因为在它给的引脚初始化中的速率设置的就是50MHZ,而对应在G474上,就是High,不同系列的芯片可能有所不同,这点可以自己再查查


AD9854.c文件中要注意的就是把gpio的初始化函数删掉,然后将前文提到的宏定义等随之修改

同时将所有涉及引脚写入1或0的语句以hal库的writepin函数代替
通过本次移植,或可为日后更多的库文件移植HAL库提供灵感
直接将以下代码复制粘贴,按照注释给的内容进行相应修改即可,理论上HAL库任何单片机都可以使用
讯享网
4.模块手动扫频各频点配置
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/149790.html