OrangePi香橙派 开启Uart串口

1.WiringPi串口示例程序报错:No Such File or directory

香橙派虽然是一款性价比很高的Linux开发板,但是和树莓派相比,其开发文档、社区资源都相对匮乏,而且很多库都是从树莓派那移植过来的,比如控制IO的库:WiringPi,而这往往会导致一些错误的发生,比如这个让我头痛的串口错误:

 分析错误的原因,不难发现问题出在/dev/ttyAMA0这,ls /dev后发现香橙派的ubuntu系统下居然没有这个设备:

于是我就开始在网络上搜索,然而给出的解决方案多是树莓派的,因为树莓派蓝牙串口会与硬件串口冲突,而boot/overlays里有个文件是可以恢复硬件串口的,但是对于香橙派,我只想说连这个文件夹都木有啊!

2.香橙派的串口设备dev/ttySx

经过一系列的折腾,终于搞明白香橙派串口设备在哪

cat /proc/tty/drivers

香橙派的硬件串口Uart的设备名称为ttySx,usb串口名称为ttyUSBx ,而不是树莓派的设备名称ttyAMA0!

但是新的问题又来了,为什么没有ttyS1,ttyS2,ttyS3?

3.修改香橙派硬件配置文件script.fex

多谢https://blog.csdn.net/renpeng009672/article/details/85100828这篇文章的答案,真是网上找了好久好久都没有找到解决办法,真是要吐槽香橙派技术文档真是少,系统也BUG很多!

香橙派硬件配置可以通过修改script.fex完成(类似树莓派raspi-config的操作)

香橙派使用的是全志的芯片,该类芯片的硬件配置可以参考这份H3芯片手册

http://www.doc88.com/p-9681502404051.html

具体的操作方法:

(1)下载sunxi-tools并编译(如果没有git指令需要安装git)

git clone git://github.com/linux-sunxi/sunxi-tools.git
cd sunxi-tools
make

(2)复制/media/boot/script.bin文件,并用bin2fex工具转换为fex

cp /media/boot/script.bin /media/boot/script.bin.bak
cp /media/boot/script.bin ./
./bin2fex script.bin > ./script.fex

(3)fex文件就是文本文件可以直接编辑,里面包含了各种硬件的配置信息,参照全志H3芯片的配置手册,简直发现了新天地,以后有机会探索一下这个文件,这里我们先解决串口问题

我的设备是orangepi-pc-plus,找到uart的相关项目

[uart0]
uart_used = 1
uart_port = 0
uart_type = 2
uart_tx = port:PA04<2><1><default><default>
uart_rx = port:PA05<2><1><default><default>[uart1]
uart_used = 0
uart_port = 1
uart_type = 4
uart_tx = port:PG06<2><1><default><default>
uart_rx = port:PG07<2><1><default><default>
uart_rts = port:PG08<2><1><default><default>
uart_cts = port:PG09<2><1><default><default>[uart2]
uart_used = 0
uart_port = 2
uart_type = 4
uart_tx = port:PA00<2><1><default><default>
uart_rx = port:PA01<2><1><default><default>
uart_rts = port:PA02<2><1><default><default>
uart_cts = port:PA03<2><1><default><default>[uart3]
uart_used = 0
uart_port = 3
uart_type = 4
uart_tx = port:PA13<3><1><default><default>
uart_rx = port:PA14<3><1><default><default>
uart_rts = port:PA15<3><1><default><default>
uart_cts = port:PA16<3><1><default><default>

对照手册的内容

uart1、2、3的used全部为0?????搞笑呢?????全部把串口屏蔽了,我还用啥啊。。。也不知道香橙派的工程师咋想的,全部打开,其中uart_port就是设备名称dev/ttySx中的x ,uart_type就是串口类型,我们一般就用TX/RX模式,所以其实给2就行,然后rts和cts都可以不用的,我们用;注释掉,修改后长这样:

[uart0]
uart_used = 1
uart_port = 0
uart_type = 2
uart_tx = port:PA04<2><1><default><default>
uart_rx = port:PA05<2><1><default><default>[uart1]
uart_used = 1
uart_port = 1
uart_type = 2
uart_tx = port:PG06<2><1><default><default>
uart_rx = port:PG07<2><1><default><default>
;uart_rts = port:PG08<2><1><default><default>
;uart_cts = port:PG09<2><1><default><default>[uart2]
uart_used = 1
uart_port = 2
uart_type = 2
uart_tx = port:PA00<2><1><default><default>
uart_rx = port:PA01<2><1><default><default>
;uart_rts = port:PA02<2><1><default><default>
;uart_cts = port:PA03<2><1><default><default>[uart3]
uart_used = 1
uart_port = 3
uart_type = 2
uart_tx = port:PA13<3><1><default><default>
uart_rx = port:PA14<3><1><default><default>
;uart_rts = port:PA15<3><1><default><default>
;uart_cts = port:PA16<3><1><default><default>

但是这里还要注意

配置中有一个关于GPIO的配置,要让引脚成为串口引脚,还得屏蔽GPIO的初始化设置

[gpio_para]
gpio_used = 1
gpio_num = 18
gpio_pin_1 = port:PA06<1><default><default><0>
gpio_pin_2 = port:PA13<1><default><default><0>
gpio_pin_3 = port:PA14<1><default><default><0>
gpio_pin_4 = port:PA01<1><default><default><0>
gpio_pin_5 = port:PD14<1><default><default><0>
gpio_pin_6 = port:PA00<1><default><default><0>
gpio_pin_7 = port:PA03<1><default><default><0>
gpio_pin_8 = port:PC04<1><default><default><0>
gpio_pin_9 = port:PC07<1><default><default><0>
gpio_pin_10 = port:PA02<1><default><default><0>
gpio_pin_11 = port:PA21<1><default><default><0>
gpio_pin_12 = port:PA07<1><default><default><0>
gpio_pin_13 = port:PA08<1><default><default><0>
gpio_pin_14 = port:PG08<1><default><default><0>
gpio_pin_15 = port:PA09<1><default><default><0>
gpio_pin_16 = port:PA10<1><default><default><0>
gpio_pin_17 = port:PG09<1><default><default><0>
gpio_pin_18 = port:PG06<1><default><default><0>
gpio_pin_19 = port:PG07<1><default><default><0>

找到串口的引脚,都给注释掉,然后总数变一下

[gpio_para]
gpio_used = 1
gpio_num = 14
gpio_pin_1 = port:PA06<1><default><default><0>
;gpio_pin_2 = port:PA13<1><default><default><0>
;gpio_pin_3 = port:PA14<1><default><default><0>
;gpio_pin_4 = port:PA01<1><default><default><0>
gpio_pin_5 = port:PD14<1><default><default><0>
;gpio_pin_6 = port:PA00<1><default><default><0>
gpio_pin_7 = port:PA03<1><default><default><0>
gpio_pin_8 = port:PC04<1><default><default><0>
gpio_pin_9 = port:PC07<1><default><default><0>
gpio_pin_10 = port:PA02<1><default><default><0>
gpio_pin_11 = port:PA21<1><default><default><0>
gpio_pin_12 = port:PA07<1><default><default><0>
gpio_pin_13 = port:PA08<1><default><default><0>
gpio_pin_14 = port:PG08<1><default><default><0>
gpio_pin_15 = port:PA09<1><default><default><0>
gpio_pin_16 = port:PA10<1><default><default><0>
gpio_pin_17 = port:PG09<1><default><default><0>
;gpio_pin_18 = port:PG06<1><default><default><0>
;gpio_pin_19 = port:PG07<1><default><default><0>

这里一定要把串口引脚找到,包括之前对uart的配置,可以参考香橙派的硬件手册

到此,script.fex就修改完毕了

(4)将修改过的script.fex转回script.bin并放回原处

./fex2bin script.fex > ./script.bin
cp ./script.bin /media/boot/

(5)最后,重启系统,就可以看到所有的串口了,测试也是没问题的

reboot

4.关于i2c(twi)以及spi的配置完全可以参考本文进行,如果GPIO除了啥毛病没法执行底层命令,也可以找找script.fex这个脚本是不是有配置错的地方。最后还是得说:

                                             香橙派是个好派,就是得多费点心思

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28615.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派GPIO

命令行执行下行&#xff0c;即可得树莓派管脚编码表。 $ gpio readall 也可看下图&#xff1a; BOARD 编号参考 Raspberry Pi 主板上 P1 接线柱的针脚编号。使用该方式的优点是无需考虑主板的修订版本&#xff0c;无需因为版本不同而重新连接线路和更改代码。BCM编号侧重CPU寄存…

树莓派入门(四)之串口通信

刚刚入手了一个树莓派3,其中的资源当然很丰富了&#xff0c;树莓派3有一个I2C,一个Uart&#xff0c;以及一个SPI&#xff0c;这些接口都是我们以后需要连接外围设备的通讯接口&#xff0c;今天就和大家聊一下树莓派相关串口Uart的配置和使用&#xff0c;当然这之前你先需要安装…

树莓派——串口通信

工作方式&#xff1a; UART异步全双工通信 目的&#xff1a; 通过串口实现多机通信 注&#xff1a;树莓派使用串口通信前需要进行一些配置 sudo vi /home/boot/cmdline.txt需要将里面用于串口登录的consoleserial0,115200 删除 dwc_otg.lpm_enable0 consoleserial0,115200 con…

如何在windows系统下用串口通信完爆raspberry pi(树莓派)

原文地址::http://www.alsrobot.cn/article-141.html 相关文章 1、Windows下用串行连接控制树莓派----http://shumeipai.nxez.com/2014/05/04/under-windows-serial-connection-control-raspberry-pi.html 2、通过串口连接控制树莓派----http://www.cnblogs.com/ma6174/archi…

树莓派(五) 树莓派和windows的文件传输方法

问题方法 电脑与树莓派互传文件的两种方式&#xff1a;FileZilla 和 VNC viewer 注意的是&#xff0c;两者必须在同一个局域网内才可以&#xff0c;也就是说在同一WiFi下或连接到同一路由器上 FileZilla 1.下载FileZilla&#xff1a;客户端 - FileZilla中文网 2.在树莓派上…

【树莓派笔记】树莓派摄像头的简单使用

1. 摄像头的安装 这里使用的是树莓派CSI (Camera Serial Interface)摄像头。引脚面朝micoHDMI接口处。关机后安装&#xff0c;热插拔可能无法检测到。 2. 启用摄像头 终端输入 sudo rasp…

初学树莓派——(五)树莓派串口收发(硬件串口)

目录 前言 串口配置 1、查询串口当前分配情况 2、更换硬件串口为默认串口 串口工具minicom设置 1、安装minicom 2、minicom测试 2.1接线 2.2串口收发测试&#xff08;Python&#xff09; 2.3测试效果 前言 树莓派有2个串口&#xff0c;分别是硬件串口&#xff08;/d…

树莓派与电脑之间的串口通信编程

树莓派与电脑之间的串口通信编程 数据通信的三个方式介绍单工通信半双工通信全双工通信 串口通信编程步骤 数据通信的三个方式介绍 单工通信 只支持数据在一个方向上传输&#xff0c;又称为单向通信。如无线电广播和电视广播都是单工通信。 半双工通信 允许数据在两个方向上…

树莓派连接串口

树莓派的串口默认为串口终端调试使用&#xff0c;如要正常使用串口则需要修改树莓派设置。关闭串口终端调试功能后则不能再通过串口登陆访问树莓派&#xff0c;需从新开启后才能通过串口控制树莓派。 一、开放串口 执行如下命令进入树莓派配置 sudo raspi-config选择 Interf…

远程监测-树莓派pi3B与pc上位机通信实例

************************************************ Environment&#xff1a;raspi3B系统、win10 上位机 、usb转TTL线一根、显示屏&#xff08;或用Viwer...有点麻烦&#xff0c;需要网上查找&#xff09; Info&#xff1a;author:New Time:20180722 *******************…

树莓派串口通信

树莓派串口通信 (一) 简介 串口通信工作方式为&#xff1a;全双工 通过串口通信可以实现多机通信 树莓派与电脑实现串口通信&#xff1a; 使用USB-TTL转换模块(USB转串口模块)或USB转串口线将树莓派与电脑连接, TXD连接RXD&#xff0c;交叉连&#xff01;&#xff01;&#…

树莓派 Pico Pi USB串口通信

Main程序 循环向UART串口打印 Hello World程序如下&#xff1a; #include <stdio.h> #include "pico/stdlib.h"int main() {stdio_init_all();while (true) {printf("Hello, world!\n");sleep_ms(1000);} }默认PICO stdio是 输出到UART0&#xff0…

树莓派利用串口进行通信

树莓派串口通信 我用的是树莓派3b型号&#xff0c;网上各种各样的修改方式来使得树莓派的串口可以工作&#xff0c;过于混乱&#xff0c;还有的教程甚至会被树莓派系统搞崩溃&#xff0c;尤其是树莓派实验室那里的中文教程&#xff0c;是错误的&#xff0c;按照那个来就直接系…

通过Linux串口实现树莓派与电脑通信

目录 一 串口说明 二 USB—TTL模块 ● usb-ttl模块接口 三 串口通信常用的API 四 修改串口的配置文件 五 串口通信代码验证 ● 发送一个字符/字符串到串口 ● 树莓读取串口数据&#xff08;字符&#xff09; ● 代码拓展&#xff08;双方&#xff09; 一 串口…

在树莓派上使用微信聊天

前言 适用于基地64位系统2.0版本。 这是一期非常简单但是非常有用的教程&#xff0c;可以让我们在树莓派上用微信聊天。关注基地的朋友都知道我们之前已经发了在基地系统上安装wps套件&#xff0c;上一个2.0系统更新版本也已经集成了QQ&#xff0c;那么随着这次微信教程的推出…

使用OpenAI Whipser开源模型实现长音频转录并结合GPT模型做文本翻译

一、前言 在前面一篇文章《Whisper与ChatGPT联手&#xff0c;轻松实现音频转录文本总结》给大家介绍过如何使用OpenAI的在线API接口和开源的离线Whisper模型做语音转录文本&#xff0c;以及对于转录后的文本内容基于GPT模型进行摘要总结。 主要应用于对音频或视频做文本转录、…

揭秘抖音成功背后的核心秘诀

Laf 公众号已接入了 AI 绘画工具 Midjourney&#xff0c;可以让你轻松画出很多“大师”级的作品。同时还接入了 AI 聊天机器人&#xff0c;支持 GPT、Claude 以及 Laf 专有模型&#xff0c;可通过指令来随意切换模型。欢迎前来调戏&#x1f447; <<< 左右滑动见更多 &…

大模型应用产品落地,提升理财师展业效果

国内大模型相关的进展消息每日纷至沓来&#xff0c;行业进入快速发展期&#xff0c;而业内讨论的焦点也逐渐从概念蓝图过渡到产品落地层面。随着大模型的发展热潮涌动&#xff0c;对话式AI正在打开新一轮的商业增量。 中关村科金作为领先的对话式AI技术解决方案提供商&#xf…

安装量远超 100 亿,代码行数过 15 万,Daniel Stenberg发文回顾 curl 25 年蜕变史!...

【CSDN 编者按】对于喜爱编程的人来说&#xff0c;幸福是什么&#xff1f;于 curl 作者 Daniel Stenberg 而言&#xff0c;最大的幸福莫过于能全身心做自己感兴趣的项目&#xff01; curl 25 岁生日快乐&#xff01; 作者 | Daniel Stenberg 整理 | 梦依丹 出品 | CSDN&…

一朵玫瑰花的python代码,python玫瑰花代码讲解

大家好&#xff0c;本文将围绕用python画玫瑰花代码 祝福生日快乐展开说明&#xff0c;一朵玫瑰花的python代码是一个很多人都想弄明白的事情&#xff0c;想搞清楚python绘制玫瑰花代码需要先了解以下几个事情。 1、怎么用python画玫瑰花&#xff0c;求大神贴代码&#xff0c;感…