历史上的今天
返回首页

历史上的今天

今天是:2024年09月10日(星期二)

正在发生

2019年09月10日 | 基于STM32从零写操作系统系列---基于寄存器写串口驱动

2019-09-10 来源:eefocus

目的 

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


相对于《基于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)并路径正确。

推荐阅读

史海拾趣

Alps Alpine Co Ltd公司的发展小趣事

Alps Alpine Co., Ltd.是一家总部位于日本的跨国电子制造公司,专注于设计和制造汽车电子、消费电子和工业电子产品。以下是关于Alps Alpine公司发展的五个相关故事:

  1. 公司合并:Alps Electric Co., Ltd.和Alpine Electronics, Inc.于2019年进行了合并,正式成立了Alps Alpine Co., Ltd. 这一合并为两家公司带来了更强大的整合资源和技术实力,使得Alps Alpine能够在全球范围内提供更多样化的电子解决方案。

  2. 汽车电子领域的发展:Alps Alpine在汽车电子领域拥有丰富的经验和技术积累。公司致力于开发汽车内部电子系统,包括车载娱乐系统、导航系统、车载通信系统、驾驶辅助系统等。随着汽车智能化和互联网化的发展,Alps Alpine不断推出创新产品,满足汽车制造商和消费者对智能驾驶体验的需求。

  3. 消费电子产品的多样化:除了汽车电子,Alps Alpine还在消费电子领域拥有广泛的产品线。公司的产品涵盖了手机、平板电脑、摄像机、音响设备等多个终端设备,并不断推出新品,以满足消费者对功能性和设计性的需求。

  4. 工业电子市场的拓展:Alps Alpine在工业电子领域也取得了长足的发展。公司的产品被广泛应用于工业自动化、机器人技术、医疗设备、能源管理等领域,为各行各业提供高性能、可靠的电子解决方案。

  5. 技术创新与研发投入:作为一家技术驱动的企业,Alps Alpine不断加大对研发的投入,致力于技术创新和产品优化。公司拥有强大的研发团队和先进的研发设施,在各个领域持续推动技术进步,提升产品竞争力。

以上是关于Alps Alpine Co., Ltd.发展的五个相关故事,这些故事展示了公司在合并整合、汽车电子、消费电子、工业电子和技术创新方面的发展历程,以及其在电子行业中的重要地位和影响力。

光大芯业公司的发展小趣事

在公司的成长过程中,光大芯业始终坚持以技术为核心,不断寻求技术上的突破。他们积极与国内外知名科研院所开展技术合作,引进先进的技术和设备,提升自身的研发能力。其中,与浙江大学微电子研究所的合作,成功开发出了开关电源管理芯片SDC7500,这一成果不仅填补了国内市场的空白,也展示了光大芯业在技术创新方面的实力。

EPT公司的发展小趣事

随着品牌影响力的不断提升,EPT开始积极拓展OEM/ODM业务。公司凭借先进的生产技术和严格的质量管理体系,成功与多家国内外知名企业建立了合作关系。通过为客户提供定制化的产品和服务,EPT不仅实现了业务的快速增长,还为其积累了丰富的行业经验。

Fairchild Imaging公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,Fairchild Imaging制定了面向未来的战略布局。公司将继续加大在成像技术领域的研发投入,推动技术创新和产品升级。同时,Fairchild Imaging还将积极拓展国际市场,加强与全球客户的合作与交流。此外,公司还将注重人才培养和团队建设,为公司的长期发展提供有力保障。

Bharat Electronics Ltd公司的发展小趣事

随着市场的不断变化和竞争的加剧,BEL并未满足于现状,而是积极寻求多元化发展。公司不仅拓展了原有的军事电子领域,还涉足电信、运算、公共运输和广播等多个行业。同时,BEL还积极拓展全球市场,将产品出口到多个国家和地区,实现了从区域性企业向全球性企业的跨越。

Daykin Electric Corp公司的发展小趣事

1969年,大金成功开发了一台室外机连接多台室内机的家用多联系统空调。这一创新产品不仅提高了空调的能效比,还满足了大型住宅和办公场所的多样化需求。多联系统空调的诞生,使得大金在家用中央空调领域取得了领先地位。

问答坊 | AI 解惑

元器件封装规格大全

元器件封装规格大全,各种器件资料 …

查看全部问答>

高手指导一下

EM2860这个芯片有人用过没,需要编程吗?…

查看全部问答>

开发SATA接口

江湖大侠路过请留步啊 小弟现在想用FPGA开发SATA接口,由于没有什么经验,感觉很困难。。。。 各位大侠如果做过相关类似的工作,(用其他开发SATA接口也行啊),手里有一些资料的,请不吝赐教啊 如果不错,价格不是问题:-) 如果有同在研究的兄弟 ...…

查看全部问答>

大家帮忙看一下这个电路呗,探讨一下……

有哪位高手帮忙看一下这个电路吧,我怎么仿真不出正确的结果,我个人认为电路能够实现通过两个极性开关控制两个恒流源的流向,当上面的极性开关基极电压为高时,正恒流源的电流通过极性开关流向地,当极性开关为低时,电流通过二极管流向地,但是在 ...…

查看全部问答>

EVC读取TXT问题,求高手解答...

有TXT文件,格式如下: 1 2 3 4 5 6 ... 如何读取该文件并将每行的数据装换为CPoint类型的x、y坐标,然后再将这些CPoint存入一个数组? 如上述例子得到结果应为: CPoint a[p1(1,2),p2(3,4),p3(5,6)...] 急用,在线等... 最好能给 ...…

查看全部问答>

FrendlyARM 不能进入vivi模式

本人初学嵌入式,按照手册上的步骤一步一步做下来。做到通过NFS启动系统时出问题了: NFS网络文件系统的配置已经做好了,并且可以保证没有问题,设置目标板模式为Nand Flash启动,连接好电源,串口线,网线,打开串口终端,在开机的时候迅速按下PC ...…

查看全部问答>

问一个windML初级的问题!!!

我装的是windML3.0+zinc6。0,而且我还打了zinc的补丁!!! 不知道是不是因为这个我才出错的 正常配置完windML后,我进行编译!!!报错 igs5050Snd.c: In function `igsSndDevCreate\': igs5050Snd.c:201: `igsAudioIsaRegBase\' undeclared ...…

查看全部问答>

VS2005的smart device的工程编译错误求教

安装了CE6,导出了sdk,安装后基于此sdk建立了一个smart device的console application的project,编译时没有问题,链接时有很多类似于 libcpmt.lib(string.obj) : error LNK2019: unresolved external symbol \"public: __thiscall std::exception ...…

查看全部问答>

DM9000的问题

我最近开始做DM9000,需要一个TCP的接收数据程序,可是连接的时候老师出错,感觉总是觉得程序不对,又不知道在哪,第一次弄这个,所以问问不知道哪位有接受的策划那个徐可以发个看看,谢谢。 还有我的QQ:181654718,希望有高手可以不吝赐教,不甚 ...…

查看全部问答>