OrangePi 驱动开发基础教程
基于WiringOP的OrangePi 4 LTS驱动开发基础教程
准备工作
- 实验材料:OrangePi 开发板、sd卡。
sd卡烧录Orangepi4-lts_3.0.6_ubuntu_jammy_desktop_xfce_linux5.18.5或Orangepi4-lts_3.0.6_ubuntu_focal_desktop_xfce_linux5.10.43版镜像(注意是带桌面的desktop版,否则无法方便地复制粘贴指令(除非通过串口连接PC)。下面均默认为带桌面版)
-
启动系统后,先配置连接网络。
- 带桌面版:在右上角配置连接即可。
- 无桌面版(此教程不使用):使用指令nmcli配置网络,nmcli dev wifi查看当前WiFi,使用下述指令连接:
sudo nmcli dev wifi connect <wifiname> password <********> wep-key-type key ifname wlan0
-
更新软件:左上角Applications - System - Software Updater。
-
安装Firefox:
sudo apt install firefox,设置默认搜索引擎为Bing,语言为简体中文。 -
设置语言:Applications - Settings - Language Support,下载更新后,将汉语(中国)一项拖到顶部,输入法Keyboard input method system选择fcitx。重启后,语言即变为中文,Shift键切换中文输入法。
注意重启后提示“将标准文件夹更新到当前语言吗?”,不建议更新,因为终端不方便输入汉字,而且会有兼容的问题。
- 获取用户手册,便于查看。
实验流程
安装WiringOP
按照OrangePi用户手册安装WiringOP。
安装好之后,gpio readall应当显示26个引脚信息。如果显示了40个引脚,则可能是因为系统版本不是OrangePi 4 LTS。
此时已经可以通过指令直接控制引脚模式和值了,如用户手册所示。下面将介绍通过C代码实现功能的方法。
准备实验路径
新建文件夹(名称举例:45sensors),存放代码文件。
mkdir 45sensors
将WiringPi.h放入文件夹中,便于后续的.c文件包含。
编写.c程序
新建.c文件(举例:touch helloworld.c),编写程序。
#include <wiringPi.h> //每个.c均需包含此头文件
int main (void)
{
wiringPiSetup () ; //编写前初始化
pinMode (8, OUTPUT) ; //设置wPi号为8的GPIO引脚为输出模式
digitalWrite (8, HIGH) ; //设置对应引脚值为1
return 0 ;
}
注意:pinMode、digitalWrite等函数的参数均为wPi引脚号,不是Physical引脚号。通过gpio readall可看到区别。接线时需要按照Physical引脚号分辨引脚,仔细接线。

编译程序
gcc -o helloworld helloworld.c -lwiringPi
如果执行不成功,请检查是否已将wiringPi.h文件放入文件夹内。
执行程序
在执行程序之前,通过gpio readall看到,wPi号为8的GPIO引脚模式(Mode)为IN,值(V)为0。
运行程序:
sudo ./helloworld
再次通过gpio readall查看,引脚模式变为OUT,值变为1。
后续计划
- 选择感兴趣的传感器,编写c程序进行实验。尝试改变参数,观察现象。
- 建议规范化命名,对应.c文件按照传感器命名(如KY-002-Vibration.c),可执行文件与.c文件同名。
- 通过串口使OrangePi和PC之间通信,在PC端编写.c程序,传入OrangePi中进行编译测试。
- 每次编译运行都需要执行
gcc -o 输出文件名 .c文件名 -lwiringPi和sudo ./输出文件名。考虑能否编写一个Linux脚本(.sh文件),输入文件名后自动编译、执行?(比如编写了c.sh文件,只需执行./c.sh hello,即可自动将hello.c编译为hello,并自动执行。) - 参考文章结尾的链接以及wiringOP文件夹内examples中的例程,学习并尝试更复杂的函数。
如果有感兴趣的外设,与我联系,实验室将考虑采购。
参考链接
-
WiringPi官网
http://www.wiringpi.com/
给出了WiringPi的函数库,可供编写程序时参考。 -
45 in 1 传感器资料
http://arduino-sensor.org/arduino-45-in-1/
给出了45种传感器介绍、使用方法、接线和例程。

浙公网安备 33010602011771号