×
单片机 > 单片机程序设计 > 详情

基于STM32从零写操作系统系列---基于寄存器写串口驱动

发布时间:2020-09-02 发布时间:
|

目的 

尝试基于寄存器层面,编写串口的驱动。用这种方式编写串口驱动,有点类似于使用汇编语言。面向的是每一个单独的寄存器,通过读、改、写的手段,配置寄存器。但是这种方式能够更接近硬件,用硬件的思维编程。


相对于《基于STM32从零写操作系统系列---使用C语言》,这章重新调整了文件结构,让项目文件更好管理和维护。主要使用了makefile的嵌套编译方法来编译多目录下的代码文件。


分析

1.Makefile嵌套编译


首先简单来看一下文件结构:


再看一下顶层Makefile,主要差异如下:


 各子目录下的Makefile比较简单


 

其中需要注意的是:

在windows的cmd命令行中for命令用于查找文件,@echo用于输出找到的文件路径。这与linux系统中的find命令类似。OBJS变量中的多个.o文件用于链接生成.out文件。


2.寄存器与串口驱动编写

设置某个功能,本质就是向寄存器某个位或字段写入相关数据。所以必须看清楚你要写入的寄存器的地址是否准确,修改的位或字段是否准确。 


3.在led.c中调用串口1初始化函数

4.编译下载调试


由于USART1.c使用了<>尖括号的头文件,还有编译选项中使用了 -nostdinc -nostdlib(即不用标准头文件和标准库),所以确保编译选项中有-I(大写i)并路径正确。

关键字:STM32  操作系统系列  寄存器  串口驱动 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机的数码管动态扫描方法