IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 树莓派串口小结 -> 正文阅读

[游戏开发]树莓派串口小结

流程图
1--------
【状态A机器】
原始树莓派 它只有AMA0使能 ls -l /dev | grep tty
它是UART0 是硬件串口 是AMA0 是给蓝牙用的
lrwxrwxrwx 1 root root ? ? ? ? ? 7 Jan 28 01:33 serial1 -> ttyAMA0
此时用户没有UART可以使用


2--------
【状态B机器】
随后在config.txt 追加了一句 ?enable_uart=1
它是使能了迷你串口 它是 UART1 默认是给无头模式登入的 并且cmdline.txt可以修改波特率
enable_uart=1 ? ? ? ? ? //从只有 serial1 -> ttyAMA0 ?到serial0 -> ttyS0 和 serial1 ->ttyAMA0

#dtoverlay=disable-bt ? //(硬件串口与mini串口默认映射对换 这里没有做 无视)
ls -l /dev | grep tty
现在是
lrwxrwxrwx 1 root root ? ? ? ? ? 5 Mar 11 06:38 serial0 -> ttyS0
lrwxrwxrwx 1 root root ? ? ? ? ? 7 Mar 11 06:38 serial1 -> ttyAMA0
验证无头模式很好用
下图的3根线可以无头进入!

3---------
【状态C机器】
现在维持AMA0给蓝牙使用
S0不要做无头模式的 怎么失能?
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service
B
sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service
sudo systemctl start serial-getty@ttyS0.service
sudo systemctl enable serial-getty@ttyS0.service
sudo systemctl status serial-getty@ttyS0.service
A
cmdline.txt 删除console=serial0,115200

原始
root@raspberrypi:~# cat /boot/cmdline.txt?
console=serial0,115200 console=tty1 root=PARTUUID=c86f8f6e-02 rootfstype=ext4 fsck.repair=yes rootwait
修改为
? ? ? ? ? ? ? ? ? ? ? ?console=tty1 root=PARTUUID=c86f8f6e-02 rootfstype=ext4 fsck.repair=yes rootwait


4--
写一个程序XCOM发什么 PI就返回什么!发送1就是关闭

状态A机器
没有使能无头模式 会失败 设备无法打开
直接用AMA0 会失败 识别打开 但是无法通讯 TXRX接的是无头模式的3根线

状态B机器
使能无头模式 成功 设备打开 ?WIN10输入4 收到4 但是有时候会有干扰
怎么把cmdline使能呢?

状态C机器
和上面一样 也即是A不可以
完成B以后很好!!!!


5--变化S0也就是 UART1 的PIN脚

不知道 问淘宝

6--交换一下S0 AMA0
A 在追加的 enable_uart=1 下面追加依据 ?dtoverlay=disable-bt
B 维持cmdline.txt的del
C 执行 sudo systemctl disable hciuart

sudo systemctl status hciuart

一切正常
复位 再看
变化1 ? hciconfig 没有了
变化2 交换了
lrwxrwxrwx 1 root root ? ? ? ? ? 7 Mar 11 07:59 serial0 -> ttyAMA0
lrwxrwxrwx 1 root root ? ? ? ? ? 5 Mar 11 07:59 serial1 -> ttyS0
此时代码不能直接run 需要修改了
#define UART ?"/dev/ttyAMA0" ? ?
//#define UART ?"/dev/ttyS0"
可以了 一样很稳定
理论是更加稳定!!!!!


一共6个 新增加的4个很好用 传统的2个 硬 分给蓝牙 迷你可以自己拿出来用 也就是5个开发的
?

#include <wiringSerial.h>
#include <wiringPi.h>
#include <stdio.h>

#define UART  "/dev/ttyAMA0"    
//#define UART  "/dev/ttyS0"    

int main()
{
    int fd;
    unsigned char cmd;
    
    wiringPiSetup(); //树莓派初始化


    fd = serialOpen(UART,9600);// 打开串口 返回文件描述符fd ;
                                         //  /dev/ttyAMA0 : 串口的地址,在Linux中就是设备所在的目录    
                                         //  9600:波特率
                                         //  返回:正常返回文件描述符,否则返回-1失败。
                                         
    if(fd < 0){
        printf("Unable to open serial device\n") ;
        return 1 ;
    }  
    
    printf("uart test [%s]\n",UART);          // 终端打印
    serialPrintf(fd, "Hello World!\r\n");  // 串口打印
    while(1){
        while(serialDataAvail(fd) != -1){ //serialDataAvail(fd):获取串口缓存中可用的字节数。
                                          //返回:串口缓存中已经接收的,可读取的字节数,-1代表错误
 
            cmd = serialGetchar(fd);      //从串口读取一个字节数据返回给 cmd
            printf("get-cmd == %d \n",cmd);
            if(cmd == 1){
                serialPrintf(fd, "\r\nserial close\r\n\r\n");  // 串口打印
                serialClose(fd);  // 关闭串口 
                return 0; 
            }else {
                //serialPuts(fd,"HELLO\r\n");
                serialPutchar(fd,cmd);  // 通过串口发送字节
            }             

        }
    }    
    return 0;
}

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:53:59  更:2022-03-12 17:56:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/12 20:41:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码