当前位置: 首页 > article >正文

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

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、修改及编译设备树
    • 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.kler.cn/a/15876.html

相关文章:

  • 阿里云ACK容器如何配置pod分散在集群的不同节点上
  • 金山云Java 开发面试题及参考答案
  • Fish Agent V0.13B:Fish Audio的语音处理新突破,AI语音助手的未来已来!
  • 软件设计师 - 第1章 计算机网络概论
  • 《基于Oracle的SQL优化》读书笔记
  • 同比缩放,64的倍数,最大值
  • 使用docker部署prometheus最新版本2.43.0
  • 你买票了吗?五一火车票发售量创历史新高,车票总发售2209万张票
  • python之面向对象练习题(七)
  • 芯片封装基本流程及失效分析处理方法
  • 通知所有员工所需的时间
  • 【Android -- 开源库】数据库 Realm 的基本使用
  • Mysql数据库的备份恢复
  • 赞!数字中国建设峰会上的金仓风采
  • ubuntu22安装redis7.0
  • 使用 ESP32 设计智能手表第 2 部分 - 环境光和心率传感器
  • 算法套路十四——动态规划之背包问题:01背包、完全背包及各种变形
  • linux_线程锁mutex(互斥量)_线程同步_死锁现象_pthread_mutex_lock函数_pthread_mutex_unlock函数_死锁现象
  • 操作系统之内存管理
  • 把字符串转换成整数
  • Python使用AI photo2cartoon制作属于你的漫画头像
  • Nautilus Chain 测试网第二阶段,推出忠诚度计划及广泛空投
  • 怎样解决高并发下的I/O瓶颈?
  • AI失业潮来袭,某些部门裁员过半
  • LeetCode_回溯_中等_93.复原 IP 地址
  • 使用 ESP32 设计智能手表第 3 部分 - 磁力计和陀螺仪