荔枝派Zero(全志V3S)驱动开发之串口

news2024/11/25 12:38:55

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、修改及编译设备树
    • 1、修改设备树文件
    • 2、编译 kernel
  • 二、移植 minicom
    • 1、配置buildroot
    • 2、编译 buildroot
  • 三、拷贝到 SD 卡
  • 四、测试验证
    • 1、确认 minicom 是否正常
    • 2、确认串口
    • 3、发送测试
    • 4、接收测试


前言

修改设备树打开 uart1 和 uart2,在 buildroot 移植 minicom 用来测试 uart1 和 uart2。


一、修改及编译设备树

1、修改设备树文件

①、查看 V3S 原理图,查看 uart1 和 uart2 对应的引脚
PE21 -> UART1_TX
PE22 -> UART_RX
在这里插入图片描述
PB0 -> UART2_TX
PB1 -> UART2_RX
在这里插入图片描述
②、修改 sun8i-v3s.dtsi
在 linux 目录下

find ./ -name sun8i-v3s.dtsi
vi ./arch/arm/boot/dts/sun8i-v3s.dtsi

在这里插入图片描述
在 sun8i-v3s.dtsi 中添加

	 uart1_pins_a: uart1@0 {
                pins = "PE21", "PE22";
                function = "uart1";
                bias-pull-up; 
            };

            uart2_pins_a: uart2@0 {
                pins = "PB0", "PB1";
                function = "uart2";
                bias-pull-up; 
            };

在这里插入图片描述
③、修改 sun8i-v3s-licheepi-zero-dock.dts
在 linux 目录下

find ./ -name sun8i-v3s-licheepi-zero-dock.dts
vi ./arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dts

在这里插入图片描述
在 sun8i-v3s-licheepi-zero-dock.dts 中添加

&uart1 {
    pinctrl-0 = <&uart1_pins_a>;
    pinctrl-names = "default";
    status = "okay";
};

&uart2 {
    pinctrl-0 = <&uart2_pins_a>;
    pinctrl-names = "default";
    status = "okay";
};

在这里插入图片描述

2、编译 kernel

make -j16
make  -j16 modules #编译模块
make -j16 modules_install INSTALL_MOD_PATH=out #安装模块
make dtbs #编译设备树

在这里插入图片描述

二、移植 minicom

1、配置buildroot

在 buildroot 下执行

make mencuconfig

Target packages -> Hardware handling,将 minicom 选上
在这里插入图片描述
保存并退出

2、编译 buildroot

make

在这里插入图片描述

三、拷贝到 SD 卡

1、把 zImage, sun8i-v3s-licheepi-zero-dock.dtb 拷贝到 SD 卡的 kernel 分区
在linux根目录下

find ./ -name zImage
cp ./arch/arm/boot/zImage /media/Gnep/KERNEL/
find ./ -name  sun8i-v3s-licheepi-zero-dock.dtb
cp ./arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb /media/Gnep/KERNEL/

在这里插入图片描述
2、把 buildroot-2017.08 产生的 rootfs.tar 解压到 SD 卡的 rootfs 分区根目录
在 buildroot-2017.08 根目录下

find ./ -name rootfs.tar
sudo tar xf ./output/images/rootfs.tar -C /media/Gnep/rootfs/

在这里插入图片描述

四、测试验证

1、确认 minicom 是否正常

将 SD 卡插到板子上,上电跑到 linux 系统下,确认 minicom 工作是否正常

minicom -v

在这里插入图片描述
可以看出,此时 minicom 版本号为 2.7.1,minicom 版本号查看正常。输入如下命令打开 minicom 配置界面:

minicom -s

在这里插入图片描述
mincom 工作也是正常的

2、确认串口

<1>、硬件连接
找一个 ch340 串口模块接到开发板的串口 1 上。
图中左侧为串口0,方便调试打印使用,右侧为串口1,我们要测试的就是这个
在这里插入图片描述
<2>、minicom 设置
1、在开发板中输入“minicom -s”,打开 minicom 配置界面,然后选中“Serial port setup”,如图
在这里插入图片描述
2、选中“Serial port setup”以后点击回车,进入设置菜单,如图
在这里插入图片描述
主要看前 7 个设置项目,分别对应 A、B……G,比如第一个是选中串口,UART1 的串口文件为 /dev/ttyS1
设置的方法是选择对应的条目,例如 A选项,键盘输入 A ,然后输入 /dev/ttyS1,其他选项也是如此
设置完以后如图:
在这里插入图片描述
3、可以通过在修改好之后执行以下这个 Save setup as dfl,然后就保存了,下次运行就是我们设置的
在这里插入图片描述
4、都设置完成以后按下回车键确认并退出,按下ESC 键退出图所示的配置界面,退出以后如图:
在这里插入图片描述
按下CTRL-A,然后再按下 Z 就可以打开 minicom 帮助信息界面,如图
在这里插入图片描述
可以看出,minicom 有很多快捷键,本实验我们打开 minicom 的回显功能,回显功能配置项为“local Echo on/off…E”,按下 E 即可打开/关闭回显功能。

3、发送测试

首先测试开发板通过 UART1 向电脑发送数据的功能,需要打开 minicom 的回显功能(不打开也可以,但是在 minicom 中看不到自己输入的内容),回显功能打开以后输入“This is a test!”,如图
在这里插入图片描述
图中的 “This is a test!” 相当于开发板通过 UART1 向电脑发送 “This is a test!”,那么 PC就会接收到 “This is a test!”, PC 收到的数据如图所示:
在这里插入图片描述
可以看出,开发板通过 UART1 向电脑发送数据正常

4、接收测试

接下来测试开发板的 UART1 接收功能,在 PC 上(com4)输入 “I‘m com4”,这里没有回显
在这里插入图片描述
在开发板上(com3)会出现
在这里插入图片描述
大功告成了!


我的qq:2442391036,欢迎交流!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/480537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

14-4-进程间通信-共享内存

之前学习了无名管道&#xff0c;命名管道&#xff0c;消息队列。 还剩下&#xff1a;共享内存&#xff0c;信号&#xff0c;信号量。 本章讨论的是共享内存。 一、共享内存的应用场景 A进程有自己的存储空间&#xff1b; B进程也有自己的存储空间&#xff1b; A进程和B进…

使用物联网技术进行肥胖管理是可行的吗?

在物联网和可穿戴设备的帮助下&#xff0c;个人现在可以监测自己的健康指标&#xff0c;如心率、血糖水平和身体活动。这些个性化的见解帮助人们对自己的生活方式做出明智的决定&#xff0c;从而带来更好的体重管理结果。 利用物联网技术成功管理肥胖症 肥胖是一个全球性的健…

还在挣扎文件

由于在老式打印机里面每打下一行都要进行回车和换行&#xff0c;在windows系统里面也延续了这个惯例&#xff0c;但是c语言是只有换行&#xff0c;但是为了兼容&#xff0c;会自动进行转换&#xff1b;比如&#xff0c;它在写入文件的时候换行会自动转换为回车加换行&#xff0…

加强网络风险生命周期

当今业务环境中云原生应用程序的激增帮助组织简化了运营。 企业现在可以近乎实时地监控数据、与客户互动并分享见解&#xff0c;帮助他们克服曾经阻碍生产力的低效率问题。 然而&#xff0c;使用云也极大地扩展了企业可利用的攻击面。 CSPM、CWPP、CNAPP、SAST、SCA、IaC、D…

网络基础3【网络层、数据链路层】

目录 一.网络层 1.IP协议 &#xff08;1&#xff09;基本概念 &#xff08;2&#xff09;协议头格式 2.网段划分 3.特殊的IP地址 4.IP地址的数量限制 5.私有IP地址和公网IP地址 6.路由 二.数据链路层 1.以太网 2.以太网帧格式 3.MAC地址 4.对比MAC地址和IP地址 …

【图】邻接矩阵

图的存储结构分为邻接矩阵和邻接表两种&#xff0c;带权的图叫做网。 邻接矩阵 邻接矩阵适合边多的图 无向图 两个顶点之间的连线是双向的&#xff0c;一个一维数组存顶点&#xff0c;一个二维数组存边 若有边则值为1&#xff0c;反之为0 邻接矩阵需要知道点数、边数、一个二维…

ARM微处理器的指令集概述

ARM处理器是基于精简指令集计算机&#xff08;RISC&#xff09;原理设计的&#xff0c;指令集和相关译码机制较为简单。ARM微处理器的指令集是加载&#xff08;Load&#xff09;/存储&#xff08;Store&#xff09;型的&#xff0c;也即指令集仅能处理寄存器中的数据&#xff0…

【论文笔记】Attention和Visual Transformer

Attention和Visual Transformer Attention和Transformer为什么需要AttentionAttention机制Multi-head AttentionSelf Multi-head Attention&#xff0c;SMA TransformerVisual Transformer&#xff0c;ViT Attention和Transformer Attention机制在相当早的时间就已经被提出了&…

Word2vec原理+实战学习笔记(二)

来源&#xff1a;投稿 作者&#xff1a;阿克西 编辑&#xff1a;学姐 前篇&#xff1a;Word2vec原理实战学习笔记&#xff08;一&#xff09; 视频链接&#xff1a;https://ai.deepshare.net/detail/p_5ee62f90022ee_zFpnlHXA/6 5 对比模型&#xff08;论文Model Architectur…

锐捷(十七)锐捷单臂路由的配置

一 实验拓扑 二 实验需求 用单臂路由实现不同vlan间的通信&#xff0c;即要求vlan10的主机和vlan20的主机之间通过三层实现互访 三 实验分析 路由器的物理接口可以被划分成多个逻辑接口&#xff0c;这些被划分后的逻辑接口被形象的称为子接口。值得注意的是这些逻辑子接口不能…

Redis高级——键值对设计

1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义&#xff0c;但最好遵循下面的几个最佳实践约定&#xff1a; 遵循基本格式&#xff1a;[业务名称]:[数据名]:[id]长度不超过44字节不包含特殊字符 例如&#xff1a;我们的登录业务&#xff0c;保存用户信息&a…

AIGC迈向通用人工智能时代

一、AIGC“起飞”的背后 2023年1月30日&#xff0c;AIGC概念股突飞猛涨。一时间&#xff0c;AIGC再次站上风口浪尖。 AIGC&#xff08;AI Generated Content&#xff09;是指利用人工智能技术来生成内容&#xff0c;被认为是继UGC、PGC之后的新型内容生产方式&#xff0c;常见…

哈希的应用 -- 布隆过滤器与海量数据处理

文章目录 布隆过滤器概念布隆过滤器设计思路布隆过滤器的应用布隆过滤器模拟实现布隆过滤器的基本框架布隆过滤器的插入布隆过滤器的探测布隆过滤器的删除 布隆过滤器优点布隆过滤器缺陷布隆过滤器模拟实现代码及测试代码海量数据处理哈希切割哈希切分 布隆过滤器概念 布隆过滤…

【机器学习】HOG+SVM实现行人检测

文章目录 一、准备工作1. 下载数据集2. 解压数据集 二、HOG特征简介1. 梯度&#xff08;Gradient&#xff09;2. 格子&#xff08;Cell&#xff09;3. 块归一化&#xff08;Block Normalization&#xff09;4. HOG特征&#xff08;HOG Feature&#xff09;5. 使用skimage.featu…

“五一”假期消防安全知识要牢记之消防安全知识答题活动

“五一”期间&#xff0c;容易出现哪些安全隐患&#xff0c;生产生活中要注意哪些安全事项&#xff0c;一起来看&#xff01; 森林防火&#xff1a; 1.禁止将火柴、汽油等易燃物带入山林&#xff0c;禁止乱扔火种。 2.景区管理单位要加强防火巡逻&#xff0c;禁止野外火源&am…

smbms项目搭建

目录 1.搭建一个maven web项目 2.配置Tomcat 3.测试项目是否能够跑起来 4.导入项目中会遇到的Jar包 5.项目结构搭建 6.项目实体类搭建 7.编写基础公共类 1.数据库配置文件 2.编写数据库的公共类 3.编写字符编码过滤器 3.1web配置注册 4.导入静态资源 1.搭建一个maven web项目 …

C++前置声明的理解

知识补充 在C/C中引入一个头文件时&#xff0c;在编译器预处理的时候会将引入头文件的地方简单替换成头文件的内容。这样做的后果是很容易引起头文件的重复引用。所以我们在编写头文件是一般有以下规定来防止头文件被重复包含。 MyWidget.h #ifndef MyWidget_H_ #define MyWi…

实验四、彩色图像处理

实验目的 使用MatLab软件对图像进行彩色处理&#xff0c;熟悉使用MatLab软件进行图像彩色处理的有关方法&#xff0c;并体会到图像彩色处理技术以及对图像处理的效果。 作业1&#xff1a;生成一副256*256的RGB图像&#xff0c;使得该图像左上角为黄色或者青色&#xff0c;左下…

day04_基本数据类型丶变量丶类型转换

前置知识 计算机世界中只有二进制。那么在计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。 进制 进制也就是进位计数制&#xff0c;是人为定义的带进位的计数方法 。不同的进制可以按照一定的规则进行转换。 进制的分类 十进制&#x…