编写用DSP的GPIO口实现控制交通灯程序

编写用DSP的GPIO口实现控制交通灯程序,第1张

GPIO本身不难,关键在于DSP系统的初始化,系统定时灯。

设定时钟频率,设定定时器

将Peripheral设置为GPIO

设定中断处理

按照控制需求进行交通灯的控制

寄存器

首先要根据要开发的功能,查阅外设的数据手册,找到相应的寄存器

根据寄存器的说明。逐位进行寄存器的读写配置

后期维护或者调试,也需要根据外设的数据手册,进行纠错

寄存器开发的优缺点

优点:

程序运行效率高,需要那个寄存器就配置那个寄存器,冗余代码量少

缺点:

如果遇到下列情况,使用寄存器开发的难度会大大提高

遇到大型项目或者需配置寄存器数量较多时,需要频繁翻阅数据手册,影响开发效率。过于依赖数据手册

程序如果需要移植,那么底层很多的寄存器 *** 作需要重写。程序可移植性差

后期维护后者调试的时候,如果没有数据手册,很多寄存器的读写很不好理解。程序可读性差

库开发的基本流程

根据要开发的功能,查看库接口文档,找到所需的函数,结构体或者宏定义

调用相应的函数接口,声明结构体或者使用宏定义的方式去实现功能

后期维护和调试,由于重新封装了直观的函数,结构体和宏定义名称,可以不用过多参考库接口文档

库开发的优缺点

优点:

相对于寄存器开发,在遇到如上相似的情况时,库开发就更具优势

遇到大型项目或者需配置寄存器数量较多时,可以直观的 *** 作想要的寄存器。开发效率较高

程序如果需要移植,底层只需要进行小的改动即可在新平台上使用。程序的可移植性较高

后期维护或者调试,不过于依赖技术手册。程序可读性高

缺点:

由于库对底层的寄存器,某些结构体等重新进行了宏定义的类型定义,所以抽象结构上多了一层库函数层,实际程序运行时也需要处理更多的代码

结论

随着技术的进步和社会需求的提高,STM32的需要调用的外设资源会越来越多,且要处理的项目也会趋于大型化和复杂化,这给项目的前期搭建和后期维护带来很大的挑战——如何高效的调用资源实现需求,如何高效的修改程序Debug

库开发使用了封装的概念很好的解决了这些问题。封装就是把一个抽象的事物的属性及属性相关的 *** 作函数打包在一起,外界的模块只能通过这个抽象事物对外提供的函数接口,对事物的属性进行访问。封装使得上层使用者只需要调用接口,无需过于关心寄存器 *** 作是怎么实现的,从而更高效的解决需求


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11099610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存