同样是用STM32点亮一颗LED灯,寄存器和库有什么区别?

描述

同样是用STM32点亮一颗LED灯,寄存器和库有什么区别?

我们先尝试用寄存器点亮。

首先在创建工程的时候就比较麻烦,新建工程,起个名字,选择一个合适的芯片,新建main.c,然后随手来一个main函数。

32的工程和51还不太一样,需要在工程里面添加启动文件,这个启动文件在ST的官网能找到。

编译代码的时候,会提示缺少各种头文件,这些头文件,在官网的标准库里面也能找到,按照提示拷贝进去就行。

准备工作做好了,就是真正开始点灯的时候,这一步必须要借助原理图和芯片手册。

配置GPIO时钟、引脚模式、输出方式、输出速度、上拉、输出高电平,这一波操作下来,如果英文水平一般,那真的很痛苦。

代码写的比较随意,也没用位移操作,纯粹就是为了点个灯。运行代码,灯确实亮了。

总结一下,用寄存器点灯确实麻烦,建立工程麻烦,读芯片手册也麻烦。

毫不夸张的说,如果没有基础,芯片又比较冷门,半天时间,保证你可以从入门到放弃。

而且剪辑视频的时候,很多细节还没放进去,比如微库,比如重置运行,少一个,你都要倒腾半天时间。

再来看下HAL库点灯,选择HAL库,就是因为他最简单。

配合cubemx,创建工程也只是分分钟的事。

打开main函数,其实步骤跟刚才的差不多,只是配置时钟,从刚才的寄存器变成了调用函数,好处就是,记住这个函数名就行,不用去看芯片手册。

至于刚才的配置引脚模式、输出方式等等,都变成了一个结构体,结合库手册,给结构体成员逐个赋值就行。

接下来,再次调用两个函数,一个初始化、一个让引脚输出。只要你不去刨根问底,用库来实现功能,比寄存器简单的多,对新手也特别的友好。




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分