2937|11

6105

帖子

4

TA的资源

版主

楼主
 

《RT-Thread设备驱动开发指南》读书笔记一 串口驱动 [复制链接]

 
本帖最后由 damiaa 于 2023-8-19 21:08 编辑

      

                            《RT-Thread设备驱动开发指南》读书笔记一 串口驱动

 

书读万遍,其意自现。形式所迫做不到看万遍,才看了一遍。所以心得必定漏洞百出,希望看了一笑了之。以后每篇都请用这个态度对待。哈哈,配合配合。

据说RT-Thread的所有设备类都是rt_device派生来的。所以都有相同的继承

看看这个结构吧,到底是叫结构还是类呢。哈: 感觉吧,C也可以做出类一样的东西哦。只要使用结构和函数指针。

所以所有的设备类型其实在rt_device设备类里面枚举出来了,要实现的回调函数和rt_device_ops 类(操作函数集)。如果没有这个类,那你就实现init open close read write control函数 如果你用了RT_USING_POSIX_DEVIO那还有dfs_file_ops类和rt_wqueue_wait_queue结构。

好吧。rt_device类就先说到这里,反正是说不清道不明。

下面继续讲串口驱动。串口这玩意谁不会。嘿嘿。串口驱动?那得像上面讲的一样。套个模。所有的驱动文件都在这里:也不知道看不看得懂。叫串口驱动的有两个文件

据说是两个版本,还有宏定义选择:

STM32_uart就是继承了rt_serial_device 也就是从它派生来的,加了dma和串口句柄。

drv_uart.c中实现了串口的枚举:

配置选择:

串口设备时钟允许配置:

相应的gpio口的时钟允许配置

串口IO的相关配置:

串口配置:

前面的是设备的一些硬件的初始化,下面就是密切的和操作有关 的函数的实际实现:

Control

Putc

Getc

dma_transmit

uart_isr

dma_isr

中断入口

回调

发送和发送回调

串口的注册和初始化。

最后再回顾一下rt_uart_ops吧,看看都实现了没有。

这不,最后的就是注册了。哈 哈。读了一遍,也就这样 似懂非懂。

------------------------------------------------谢谢--------------------------------------------------------------

 

 

 

 

 

最新回复

感谢楼主分享的技术内容,非常详实,图文并茂,受益匪浅   详情 回复 发表于 2024-4-3 19:19
点赞 关注(2)

回复
举报

172

帖子

3

TA的资源

一粒金砂(高级)

沙发
 

程序框架一复杂就不知道是哪了

 

 

 
 

回复

674

帖子

5

TA的资源

纯净的硅(初级)

板凳
 

在freertos里见过这个架构,说实在的,这是把简单问题复杂化了,因为很多情况下更换个其它型号的mcu并不能通用,最后还需要吃透新的mcu,额外的还要摸清楚这个架构的来龙去脉,白白增加了负担。

点评

面向接口开发。  详情 回复 发表于 2023-8-21 08:47
 
 
 

回复

6995

帖子

11

TA的资源

版主

4
 

版主大佬,2楼讲的是这回事,这就是要建方在芯片或者是开发板的出品方,是否适配了RTT的驱动,如果不是,新手拿到就是一块板砖。

 
 
 

回复

6105

帖子

4

TA的资源

版主

5
 
本帖最后由 damiaa 于 2023-8-20 17:58 编辑

@EPTmachine dwwzl lugl4313820  确实。不过很多厂家适配了驱动了。一般个人如果每个驱动都自己去整那肯定没得玩。

反过来说如果理解一下驱动的构成和写法,那使用起来肯定是更加得心应手些。

另一方面我们通过学习它的代码可以看C语言如果用结构和函数指针做出类似类的东西。面向对象编程

 
 
 

回复

7628

帖子

2

TA的资源

五彩晶圆(高级)

6
 
dwwzl 发表于 2023-8-20 06:47 在freertos里见过这个架构,说实在的,这是把简单问题复杂化了,因为很多情况下更换个其它型号的mcu并不能 ...

面向接口开发。

点评

面向接口开发  详情 回复 发表于 2023-8-27 17:28
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

7
 

先来搞一波评论再说,这么好的学习资料,我一定要收藏下载学习。

 
 
 

回复

6105

帖子

4

TA的资源

版主

8
 

面向接口开发

 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

9
 

说实话我觉得没有必要用这个

点评

确实,我用stm32也是裸奔了很多年,而且这个还蛮重要的,不建议一开始就用实时操作系统。  详情 回复 发表于 2023-8-28 10:19
 
 
 

回复

6105

帖子

4

TA的资源

版主

10
 
传说中的路过 发表于 2023-8-28 09:33 说实话我觉得没有必要用这个

确实,我用stm32也是裸奔了很多年,而且这个还蛮重要的,不建议一开始就用实时操作系统。

 
 
 

回复

4

帖子

5

TA的资源

一粒金砂(初级)

11
 
学习啊
 
 
 

回复

755

帖子

4

TA的资源

纯净的硅(高级)

12
 

感谢楼主分享的技术内容,非常详实,图文并茂,受益匪浅

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表