完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、基于RT-Thread+RA6M4实现高效可移植的串口驱动 为了实现上位机和下位机之间的双向通讯,我们需要实现高效的串口驱动。首先实现串口驱动,是因为它更简单方便,也更具备通用性,基本所有的单片机都会有串口。后面也会实现USB通讯来满足更大的数据量更快的速度的要求。 本章直接根据芯片手册写寄存器来实现串口驱动,不使用官方的FSP和rtthread的设备驱动。一方面这两者都太复杂了,要了解其实现机制实际上要花费很多时间,往往会让初学者云里雾里,哪怕通了也不知怎么通的,有问题也不知道如何分析,有这个时间完全可以自己去实现了;另外考虑后面用串口做通讯需要高效易用可移植,而且本文本着教程的属性,希望读者知其然知其所以然,所以完全从零开始去实现一个高效易移植的串口驱动;一通百通,了解该过程之后,这样对于其他任何芯片都能根据芯片手册去实现了。在此基础上再去用FSP和rtthread的设备驱动也会更清晰,哪怕有问题也知道如何去分析解决。 一般来说,要实现一个单片机的外设模块的驱动,第一手资料就是芯片的手册,我们这里参考的就是<<RA6M4 Group User’s Manual: Hardware>>。一般外设相关的有以下几个部分,需要去详读。 引脚配置:输入输出,多功能复用配置等。 时钟配置:时钟源配置,有些芯片需要使能外设时钟才能使用,之所以有外设时钟能使能和禁止,是为了低功耗,也就是只有需要用的才使能。RA6M4这部分功能是在《10. Low Power Modes》中描述,也写芯片是在时钟模块中描述。 模块配置:也就是串口本身相关的配置,波特率参数,中断方式等。 中断配置:本芯片是CORTEX-M33的内核,所以使用的是NVIC,但是多了一个ICU进行中断到NVIC的映射。同时也包括中断向量,回调函数等。 我们分别针对这几部分去阅读芯片手册,然后一个一个寄存器配置。 RA6M4的串口介绍 引脚配置 前面通过看寄存器知道可以通过PWPRS的 PSEL[4:0]选择具体引脚对应是哪一个外设,我们可以继续看<<19.6 Peripheral Select Settings for Each Product>>有PSEL的对应表。 比如我们规划P304作为RXD6,P305作为TXD6. P304PFS,P305PFS的PSEL[4:0]都要配置为00100b 原作者:qinyunti
|
|
相关推荐
|
|
655 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2448 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1292 浏览 0 评论
1895 浏览 0 评论
1486 浏览 0 评论
74867 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 17:02 , Processed in 0.821264 second(s), Total 65, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号