【摘要】 引言这里笔者先开个箱,上图(感谢华为云IoT借与的新玩具,拿到开发板就像拿到新玩具一样开心~) 第一章 开发板调测 1.1 开发板通电调测与网络测试开发板通电,等待开发板正常启动网线连接,局域网ping测试,公网ping测试打开MobaXterm软件如图选择对应串口和波特率(115200)按下开发板的“RST”复位键,观察串口打印的信息输入ifconfig查看自己开发板的ip地址ping …
引言
这里笔者先开个箱,上图(感谢华为云IoT借与的新玩具,拿到开发板就像拿到新玩具一样开心~)


第一章 开发板调测
1.1 开发板通电调测与网络测试
- 开发板通电,等待开发板正常启动
- 网线连接,局域网ping测试,公网ping测试

打开MobaXterm软件如图选择对应串口和波特率(115200)

按下开发板的“RST”复位键,观察串口打印的信息

输入ifconfig查看自己开发板的ip地址

ping www.baidu.com查看公网是否可正常访问
如图所示访问公网成功

接下来我们测试一下开发板-虚拟机-主机(局域网内)能否正常通讯- 打开虚拟机,在终端输入
ifconfig查看虚拟机的IP地址,ping开发板的IP地址查验是否通讯成功

- 开发板终端
ping主机的IP地址查验是否通讯成功

1.2 SCP命令测试(开发板与PC间远程文件传输的命令)
虚拟机:新建一个hello.txt
命令:vim hello.txt(如果有安装过vim使用此命令,如显示错误代表没有安装,命令使用 vi hello.txt)

按i后输入文本hello
输入完成后按"ESC"后输入:wq,回车完成保存并退出

scp命令测试:scp hello.txt root@自己开发板的IP地址:/home/root/

第一次使用此命令会提示是否确认连接(开发板和虚拟机)
输入yes确认连接
查看开发板终端文件检验是否传输文件成功
如图所示,开发板终端已经接收到了hello.txt文件

输入命令:
vi hello.txt
文本内容也显示正确,文件传输命令scp测试成功

第二章
2.1 设备树框架分析与点亮LED
- 设备树贯穿了整个Linux嵌入式开发
- 设备树的使用对后面实战项目外设驱动至关重要
- 在嵌入式Linux系统中,绝大多数硬件设备都有非常成熟的驱动效果
- LED子系统、GPIO子系统、INPUT子系统等都可以直接修改使用
查看内核源码与设备树框架
- 设备树:描述一个硬件平台的硬件资源,可以被uboot传递到内核,内核可以从设备树中获取硬件信息
- DTS代表设备树文件
- DTC指编译设备树源码的工具
- DTB是设备树源码编译生成的文件
首先我们看看内核源码
解压iotclub-ya157c-kernel.tar.bz2
得到内核源码目录

用VS Code打开内核源码目录
打开设备树文件 目录如下

查找GPIO口LED相关部分(crtl+f)

- label:标签
- gpios:查找外设对应的引脚进行驱动
- trigger:触发方式设置
- status:状态
查找用户灯的引脚
查找手册
智慧物流/智慧物流课程资料/原理图/20200520_EVB_HX_RevA04.pdf


查找芯片MP157引脚手册
智慧物流/智慧物流课程资料/原理图/MYC_YA157C_PIN%20LIST-V2-2020508.pdf

修改对应gpio口

编写设备树编译脚本.sh

执行脚本文件编译出.dtb文件
命令:
./my_dts_make.sh

在内核同等路径下有一个编译出来的build文件,里面存放着编译好的设备树文件.dtb

用scp命令传输dtb文件到开发板进行更新
sudo scp stm32mp157c-ya157c-lcd-v2.dtb root@自己开发板IP地址:/boot

传输完成后reboot进行重置
reboot

在/sys/class/leds/路径下可以看到刚刚添加的两个节点heartbeat和motor

2.2 用命令行点亮LED灯和读取按键
我们进入led的节点heartbeat

命令:
echo none > trigger
将触发方式设置成none,我们才可以自行控制

命令:
echo 1 > brightness
熄灭LED


命令:
echo 0 > brightness
点亮LED

命令:
echo heartbeat > trigger
设置LED为心跳指示灯状态

2.3 编写测试程序用按键点亮LED灯/驱动E53扩展板电机
接下来我们编写测试程序
这里我们需要安装另一个交叉编译链(Ubuntu下全局可用的,之前的交叉编译链基于内核编译SDK环境下)
选用arm-linux-gnueabihf-gcc
命令:
sudo apt-get install gcc-arm-linux-gnueabihf

查看是否安装成功及对应版本
命令:
arm-linux-gnueabihf-gcc -v

而后我们打开key_led项目
主函数main.c文件
- 定义
led属性路径 - 创建
led_f文件写入点 if函数判断按键event.code控制led亮灭


将makefile交叉编译链更改成我们安装的arm-linux-gnueabihf-gcc
打开终端(CRTL+SHIFT+`)
make编译输出可执行文件Key_LED
命令:
make ARCH=arm
ls
cd build_arm
ls
scp Key_LED root@自己开发板IP地址:/home/root

开发板输入.Key_LED运行文件

成功用按键控制LED灯的亮灭

如果我们想要控制E53案例板上的电机呢?原理是一样的
修改对应的设备树文件


编写程序实现功能


运行可执行文件./

驱动电机成功

技术指导:
华为云社区与华为云学院:https://edu.huaweicloud.com/
人员:阿正前辈























![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)