X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
国产芯片交流
[MCU] 在全志H616核桃派开发板上进行基于WiringPi的IO控制
aleksib
2024-5-17 09:41
楼主
## GPIO指令 WiringPi对核桃派的物理引脚进行了封装,定义了一套自己的引脚编号,为了保证代码兼容性,目前核桃派的wPi引脚定义和树莓派一致。 ## 编译和运行C代码 我们来体验一下WirngPi的编译和运行方法,先在核桃派当前目录新建一个test.c文件,输入下面内容(该代码实现在终端打印“Hello WalnutPi信息”): ```c #include
intmain(void) { printf("Hello WalnutPi\n"); return0; } ``` 编译代码,由于WiringPi是以动态库存在,所以编译要加上`-lwiringPi`。下面指令表示将当前目录下的test.c文件编译成可执行文件test。 ```bash gcc -Wall -o test test.c -lwiringPi ``` 运行刚刚编译出来的程序: ```bash sudo ./test ``` 可以看到执行后终端打印出:Hello WalnutPi信息: ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://walnutpi.com/assets/images/c1-d24c6e2d4dba8197975e47adab6e6802.png) ## Geany IDE (核桃派本地) 核桃派桌面系统出厂预装了Geany IDE ,位于**开始--开发**栏,使用Geany可以实现C编程和编译运行。 打开Geany: ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://walnutpi.com/assets/images/c2-ac5e0833bcd8f9054091a51898f16f67.png) 新建一个文件,输入下面的测试代码,保存为.c文件。 ```c #include
intmain(void) { printf("Hello WalnutPi\n"); return0; } ``` ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://walnutpi.com/assets/images/c3-c00422c961ecb739d37a9db6b2b90929.png) 然后配置带WiringPi的C代码编译和生成命令。打开**生成--设置生成命令** : ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://walnutpi.com/assets/images/c4-d09ef496c21589fd82fc4c59c174ddd1.png) 在**Build**命令最后的地方加入 **-lwiringPi** (注意区分大小写)。这个命令用于生成可执行文件,加入后完整命令为: ```bash gcc -Wall -o "%e""%f" -lwiringPi ``` 在**Execute**命令前面加入 **echo "root" | sudo -S** (注意区分大小写)。这个命令用于运行前面生成的可执行文件(程序),加入后完整命令为: ```bash echo"root"|sudo -S "./%e" ``` ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://walnutpi.com/assets/images/c5-fc458231f48fe05b9b5debf070a59910.png) 配置完成后点击**Build**按钮,下方可以看到编译结果信息。编译成功的话当前目录下会生成一个可执行文件。 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://walnutpi.com/assets/images/c6-e251d3a94568f89ca732c2e839a6d1ae.png) 再点**执行**按钮,可以看到弹出一个新终端,打印了“Hello WalnutPi”信息,说明代码被成功编译和执行。 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://walnutpi.com/assets/images/c7-aec2f3414be24b5bf896e1e958b4bc0e.png) ## VSCode IDE(ssh远程) 除了使用核桃派自带Geany IDE外,这里说一下使用VSCode IDE 远程操作方法。关于VScode IDE远程方法请参考: [VSCode IDE(ssh远程)](https://walnutpi.com/docs/python/python_run#vscode-%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5%E5%9F%BA%E4%BA%8Ewindows) 章节内容,这里不再重复。 VScode IDE需要在终端下使用命令来编译,好处是C编程比较直观,而且可以远程操作: 编写代码: ```bash gcc -Wall -o test test.c -lwiringPi ``` 执行程序: ```bash sudo ./test ``` ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://walnutpi.com/assets/images/c8-268b946a082c91c4765877a176255de8.png) ## IO控制 ### 点亮第1个LED ```c /* 实验名称:点亮第1个LED 实验平台:核桃派 说明:点亮核桃派开发板上的LED */ #include
#include
// 核桃派的板载LED引脚wPi编码为33 #defineLED33 intmain(void) { printf("WalnutPi LED\n"); wiringPiSetup(); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH);//点亮,LOW熄灭。 return0; } ``` ### 按键 ```c /* 实验名称:按键 实验平台:核桃派 说明:按键按下点亮LED,松开熄灭LED */ #include
#include
// 核桃派的板载LED引脚wPi编码为33,按键KEY为32 #defineLED33 #defineKEY32 intmain(void) { printf("WalnutPi Pi KEY\n"); wiringPiSetup(); pinMode(LED, OUTPUT); pinMode(KEY, INPUT); pullUpDnControl(KEY, PUD_UP);//开启上拉电阻 while(1) { if(digitalRead(KEY)== LOW)// 按键按下 { digitalWrite(LED, HIGH);// 点亮LED } else { digitalWrite(LED, LOW);// 熄灭LED } } return0; } ```
点赞
回复评论 (1)
沙发
freebsder
谢谢分享,这个库挺好用的,解决了不少技术细节。
默认摸鱼,再摸鱼。2022、9、28
点赞
2024-5-17 17:12
最新活动
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
随便看看
【全志异核多构 AI智能视觉V853开发板测评】NPU测试YOLOV3
问一个关于AD的问题
请教MAX7219驱动8个LED显示全亮的问题!
想买个ARM开发板,请给我点建议
自适应滤波的verilog程序
什么叫封装了TCP/IP协议的无线模块
新手求助 希望各位能帮帮忙
关于PESQ和PEAQ
建议论坛的字体选项里 增加 文泉驿正黑/微米黑
5509 DSP程序中断中使用XF管脚误区
μC/OS-II在嵌入式开发平台上进行移植的一般方法和技巧 (1)(转)
wince6 0下怎么添加.net framework 3.5
多功能车辆总线控制器芯片帧收发器设计方案
MBD DSP 算法实现
招聘高级嵌入式工程师
3自由度机械臂画直线和圆
ADI 最新中文资料
MSP430编程时常犯的错误
思考两个关于保护视力的小问题
想换个工作,请大家帮帮出出主意
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复