同样是用STM32点亮一颗LED灯,寄存器和库有什么区别?
我们先尝试用寄存器点亮。
首先在创建工程的时候就比较麻烦,新建工程,起个名字,选择一个合适的芯片,新建main.c,然后随手来一个main函数。
32的工程和51还不太一样,需要在工程里面添加启动文件,这个启动文件在ST的官网能找到。
编译代码的时候,会提示缺少各种头文件,这些头文件,在官网的标准库里面也能找到,按照提示拷贝进去就行。
准备工作做好了,就是真正开始点灯的时候,这一步必须要借助原理图和芯片手册。
配置GPIO时钟、引脚模式、输出方式、输出速度、上拉、输出高电平,这一波操作下来,如果英文水平一般,那真的很痛苦。
代码写的比较随意,也没用位移操作,纯粹就是为了点个灯。运行代码,灯确实亮了。
总结一下,用寄存器点灯确实麻烦,建立工程麻烦,读芯片手册也麻烦。
毫不夸张的说,如果没有基础,芯片又比较冷门,半天时间,保证你可以从入门到放弃。
而且剪辑视频的时候,很多细节还没放进去,比如微库,比如重置运行,少一个,你都要倒腾半天时间。
再来看下HAL库点灯,选择HAL库,就是因为他最简单。
配合cubemx,创建工程也只是分分钟的事。
打开main函数,其实步骤跟刚才的差不多,只是配置时钟,从刚才的寄存器变成了调用函数,好处就是,记住这个函数名就行,不用去看芯片手册。
至于刚才的配置引脚模式、输出方式等等,都变成了一个结构体,结合库手册,给结构体成员逐个赋值就行。
接下来,再次调用两个函数,一个初始化、一个让引脚输出。只要你不去刨根问底,用库来实现功能,比寄存器简单的多,对新手也特别的友好。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !