完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

继续学习S32K144,前面分析过一次机遇UART的printf。今天从驱动以及原理层面了解一下这背后的机理。

首先值得一说的是,虽然我们在电脑上通过串口工具查看到了串口的信号,但是本质上来说这是串口转成了USB的信号。在之前接触Arduino的时候,有一个完成相关功能的小芯片CH340。但是,我们这个开发板实现这样的功能直接是走了一个MICRO USB的接口。这个功能是如何实现的呢?

关于这个功能,顺着原理图做一个逆向的寻找。

这是MICRO USB的部分,这部分在这个开发板上最重要的功能或许应该是OpenSDA调试器功能而不是打印功能。不过,既然串口信息走的这个数据口那么这个串口来源应该往前找。从上面的信息看,其实这部分是通过USB的模式进入了后面的芯片。

后面的这个芯片是一个MCU,也是32位的ARM处理器,性能还不错。MCU相应的资料我在文章连接中整理放上了。看上去,这个MCU比较好的一点恰好是能够提供串口自己USB的接口两种方式,通过这个做了一个转换。同时,这个MCU负责实现SDA的功能。看起来,这很大程度上是一个独立的工作单元。而后期有时间的话,也可以研究下这个芯片以及相应的调试技术。在这个芯片中,固化的软件应该实现了一个串口到USB的透传功能。

不看细节,看大的方向的话,再往后这个串口信号就直接进了S32K144 MCU的UART端口了。

接下来,直接做个串口驱动的测试。

这是串口用到的MCU的资源。

进行管脚的属性配置。

做一下驱动属性的配置。之后,生成代码,然后增加相应的初始化以及测试代码如下:

首先,对MCU UART的管脚进行了初始化配置。接着,初始化了串口驱动。之后,修改了串口收发的中断优先级,这是为了避免与FreeRTOS有冲突。

这个是测试代码,软件编译成功烧写后运行,在串口监控工具中可以看到如下的效果:

其实,这里的时间戳在一定程度上能够看得出来任务调度的一个准确性。其实,这就是pritnf的一个雏形了,如果是用到了printf,增加的应该也只是一个数据格式转换的过程。后续,或许我还会尝试实现一个printf的函数。

完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

261_S32K144_串口驱动相关推荐

  1. WinCE中串口驱动及接口函数介绍(转载)

    作者:ARM-WinCE 在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图: 串口驱动本身分为MDD层和PDD层.MDD层对上层的Device Manager提供了标准的流设备驱动接口( ...

  2. linux串口驱动分析

    linux串口驱动分析 硬件资源及描写叙述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作 ...

  3. linux串口驱动分析【转】

    转自:http://blog.csdn.net/hanmengaidudu/article/details/11946591 硬件资源及描述 s3c2440A 通用异步接收器和发送器(UART)提供了 ...

  4. WINCE6.0+S3C6410串口驱动

    ********************************LoongEmbedded************************作者:LoongEmbedded(kandi)时间:2011. ...

  5. RTEMS 的 AT91SAM9260 移植(5): 调试串口驱动

    其实到这里,只要能保证编译通过,再修改一下链接脚本,其实已经可以跑在at9260的系统上了.因为我没有仿真器,不知道程序的状态,所以必须撰写调试串口的驱动. RTEMS 的调试串口并没有采用中断输出的 ...

  6. linux 串口驱动 atmel_set_mctrl何时调用,linux uart serial使用驱动分析

    uart tty serial 驱动分析 内核版本3.14.23 以atmel为例: 起点: static int __init atmel_serial_init(void) { int ret; ...

  7. linux 串口驱动(二)初始化 【转】

    转自:http://blog.chinaunix.net/uid-27717694-id-3493611.html 8250串口的初始化: (1)定义uart_driver.uart_ops.uart ...

  8. 【转载】WinCE中串口驱动及接口函数介绍

    转载自:http://blog.csdn.net/nanjianhui/article/details/2627755 在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图: 串口驱动本身分 ...

  9. S5PV210开发 -- 串口驱动开发

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78579074 上篇文章讲的 UART,更多的是硬件相关的知识.接下来进入正题 ...

最新文章

  1. iphone照片永久删除怎么恢复_怎么恢复删除的照片?专业数据恢复软件轻松搞定...
  2. webstorm中git密码输入错误,重置问题
  3. JAVA传入一个字符串,返回一个字符串中的大写字母
  4. 分區策略與數據傾斜處理策略的區別
  5. SDI, DVI, HDMI, DisplayPort的区别(Z)
  6. 收录批量查询神器 bluecattools
  7. linux 字符设备驱动cdev
  8. 你真正了解public、internal、protected、private吗?不妨幽默一些
  9. Selenium定位HTML元素(Python)
  10. python opencv旋转图片_opencv3+python3进行图片旋转处理
  11. 2.10_hash_table_哈希表 / 散列表
  12. Android Camera2+HAL3架构
  13. UDP Socket编程
  14. 数字图像处理第一次试验:图像的基本操作和基本统计指标计算
  15. mysql front和mysql_安装 MySQL 和 MySQL-Front
  16. 火狐浏览器分辨率_Firefox在全球浏览器市场占有率达到20%
  17. 负载均衡器部署方式和工作原理
  18. css 设置手机浏览器背景图片填充整个页面的小问题级解决方法
  19. Java如何处理参数中带特殊符号的请求?
  20. 如何实现跨行跨地区转账实时到帐而且免手续费?

热门文章

  1. C语言:从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置
  2. 世界著名IT企业汇总
  3. Chrome浏览器显示 您的连接不是私密连接
  4. 艾森豪威尔四象限法则
  5. 旅行-出门必备用品清单
  6. t检验自由度的意义_T检验和F检验\自由度_f检验和t检验的区别
  7. 17条卢松松近期言论汇总
  8. 实对称矩阵为正定矩阵的一个充分必要条件
  9. C++基础 - IO对象(流对象)状态,置位与复位
  10. 程序设计与实习MOOC 指针练习:MyMax