我发现STM32的一些基本外设都有对应结构体,配置外设就配置那个结构体就可以了,给结构体里面的对应项赋值。我想这也看是后来为什么诞生STM32cube
我发现STM32的一些基本外设都有对应结构体,配置外设就配置那个结构体就可以了,给结构体里面的对应项赋值。
我开始以为是UART IIC SPI这样 后来发现 GPIO EXTI ADC SDIO 定时器也是这样。
我想这也看是后来为什么诞生STM32cube
我们以后自己写一个外设的驱动也可以养成这样的习惯,把要配置的参数包装成一个结构体。
感觉外设驱动或者初始化函数的编写都有统一的模式了。
这种细节也是得自己真正自己动手开始写程序才能发现的。
野火的STM32书写出了这些不错。野火书里反复出现的一句话就是:初始化结构体和初始化库函数配合使用是标准库精髓所在。理解了初始化结构体每个成员意义基本上就可以对该外设运用自如了。
我还得弄清楚STM32标准库到底写了些什么,和我们自己写的外设驱动的区别?一个UART驱动文件里面,哪些是标准库,哪些是自己写的?
看这下面写的,标准库提供了这个初始化结构体,和初始化函数。
我想我们之所以写一些外设包括串口驱动这么轻松,几行代码可以搞定,得感谢标准库的存在,其实我们写驱动只是对标准库写好的一些东西比如结构体赋值,你要配置成什么样的这个标准库没法帮你写,你自己赋值,赋值完配置好久OK了,其他标准库都帮你完成了。也就意味着自己写驱动的部分实质是需要自己个性化配置的部分,也就像,你要组装一台电脑,其实基本配件都给你做好了,你只需要告诉我们你需要什么样的配置就可以了,然后它就给你呈现一台完整的电脑了,就不需要你去做那些基础配件了,所以甚至写驱动可以变成STM32cube图形化界面点几下选几下就可以完成了!!!!!!因为本质就是这样的!!!!!!!!!!你只需要知道一个外设它的参数有哪些,代表什么意思在,这样你才会设置,知道这些基本就OK了。就像你组装电脑至少得知道CPU 内存 硬盘是干嘛的。这样你才能选择自己合适的配置。这么来看我感觉STM32工程师很有被机器取代的可能啊。我简历上都估计不好意思写自己写串口驱动,因为大部分实际是标准库都写好了。现在的STM32工程没有看到不带有标准库的对吧,我估计HAL库的本质也是这样。这样的话STM32确实可以比较快地玩透。所以单单会STM32,串口可能还不够,所以你还得会Freertos PCB TCPIP等等的。
标准库的全称是标准外设库,怪不得。
这部分是自己编写的不属于标准库的内容,是不是对初始化结构体的赋值就是我们自己写的。
好像自己写的驱动函数里面的一些基础函数也是库函数提供的。
可以看到初始化结构体就是在标准库对应外设的头文件里面定义的!!!!!!!!!!!
你要真想看标准库写了什么,那就直接去看标准库里面对应外设的C文件呗
https://blog.****.net/sinat_16643223/article/details/109285568