开发板:orange pi  zero3

镜像:ubuntu-jammy

Q:解决异常重启造成Linux系统损坏的问题

A:将/etc/fstab中,根文件系统的载入方式改为只读,如下:

UUID=097c0934-864c-4961-9bf6-4ab53f3c5f5a / ext4 ro,defaults,noatime,commit=600,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,nosuid 0 0

默认情况下,重启后会自动进入orangepi用户,因此,将要执行的程序放到~/.profile里,即可实现开机自动执行。这样异常重启后,不会对根文件系统造成任何伤害。

如果要改为rw模式,只需要mount -o rw,remount / 即可。

 

Q:等待网络完全联通,否则持续循环

rtn=5
while [ $rtn -ne 0 ]; do
   ping -c 1 www.baidu.com > /dev/null 2>&1
   rtn=$?
done

 

Q:GPIO手工操作

gpio  readall

GPIO列:GPIO编号

WPI: 当使用wiringpi进行编程时,使用的编号

Mode: IN/OUT

V: value, 高低电平指示(1-高 0-低)

手工操作GPIO电平:

  查看结果:注意26针角的value变为了1

 清楚操作:

echo 74 > unexport,完成后,gpio74目录将消失

 

Q: 利用wirringpi操作GPIO

orangepi zero3自带wiringpi,不需要安装

cd /usr/src/wiringOP/examples/ 这里是各种例程

以下是示例代码(GPIO部分主要参考blink相关例程)

include <wiringPi.h>

int main() {
 
      wiringPiSetup();          //初始化    
      pinMode (16, OUTPUT) ;   //设置wpi编号16的针角为OUTPUT模式
      digitalWrite (16, HIGH);    //设置为高电平
      digitalWrite (16, LOW);    //设置为低电平
}    

 

gitee/github的使用:

git config --global user.name 'peterhu318'
git config --global user.email 'peterhu318@126.com

 

clone iot项目:git clone https://gitee.com/peterhu318/iot.git

push iot项目:

cd ./iot

git add .

git commit -m "describe"

git push

 

串口通讯(serial)测试:

机器1:win11 + sscom5

机器2:orangepi zero3 + jammy  + minicom 串口pin: 8,10

先打开urlt 5,重启,在/dev/下能看到 ttyAS5,说明配置没问题了

 执行minicom会说找不到/dev/modem,只要链接一下设备即可。

进入minicom设置:minicom  -s进入设置:9600N8,1 一定不要设置硬件流控,否则会出现无法向win11发送情况。

总结来说:双方的参数设置一定要匹配,否则会出现一发能发,一方不能发。有一方发送乱码等各种情况。

当以上测试没有问题后,就可以上程序了。

wiringpi在/usr/src下有一个example的示例,里面有两个: serialRead及serialTest。只要改一下里面的设备名及波特率,就可以用make进行编译并测试了。

 

关于某些i2c设备(流量传感器)无法识别的问题:

posifa pmf83020流量传感器,用香橙派无法识别,但换成悟空派就能识别。

发现香橙派用的是5.x的内核版本,将其换成6.x的内核版本,就能够正确识别了。

 

关于香橙派启动慢的问题

启动下面时,总是要等大约20s左右,造成启动缓慢

Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.

Begin: Running /scripts/local-premount ... Scanning for Btrfs filesystems

解决办法:将内核版本从5.x换成6.x就没有这个问题了

 

DWIN屏(迪文屏)入门:

屏:DMG100600Y070两块。

第一个要注意的是:这个串口屏有个RS232与TTL的开关,在排线前方芯片组的前方。短接为TTL,不短接为RS232串口模式。

测试串口通讯情况:TTL那块屏串口通讯有问题。要么无回显,要么接收与发送一致,最终未定位出原因。最后重新购买了基于RS232的串口模块后,成功。

串口模块:在win11安装驱动,在硬件驱动处,将波特率改为115200;

然后用sscom串口软件,发送AA 00 CC 33 C3 3C握手信号,设备返回AA 00 4F 4B 5F 56 31 2E 36 00 00 00 00 00 CC 33 C3 3C,应该说明是成功了。

 

posted on 2024-02-25 09:58  胡彼德  阅读(12)  评论(0编辑  收藏  举报