关注分享主机优惠活动
国内外VPS云服务器

树莓派学习记录(五)串口通信(树莓派4串口)

摘要:观看陈立臣在上关市学习可编程性的 Raspberry Pi 视频以及他一路记录的学习笔记。 串行通信概念。 串行通信用于多个单元之间的通信。 串行通信是全双工的。 这意味着双方可以同时进行通信。 使用半双工通信时,一次只有一方可以通信。 对于串行通信,Raspberry Pi 通常连接两根电线。

查看 Chen Lichen 的 Raspberry Pi 视频,他在此过程中学习了 Kaminoseki 可编程性。 记录学习笔记

1. 串行通信概念 1. 串行通信用于多个设备之间的通信。 2. 串行通信是全双工的,即双方可以同时通信。 半双工通信。 一次只有一方可以通信。 3. Raspberry Pi 通常需要连接 TXD 和 RXD 两根线进行串行通信。 连接时请反接(即将树莓派的TXD与通讯伙伴的RXD连接,然后将RXD与TXD连接)。 4. 进行串行通信时,通信双方的数据格式(数据位、停止位、奇偶校验位)和波特率必须匹配。 2. 串行通信编程 Raspberry Pi 的串口为 /dev/ttyAmA0(在 Linux 上一切都是文件) 1. 串口更改 配置 /boot/cmdline.txt 文件并删除 "console=ttyAMA0,115200" 。 该语句使用串口在Raspberry Pi启动时输出调试信息。 如果使用串口通信,必须去掉sudo restart并重新启动。 2、连接

树莓派从USB连接到TTL TXD——RXD RXD——TXD 0 V——GND

。 3. 函数#include intwiringPiSetup (void) 返回执行状态。 0表示成功,-1表示失败 voidlay (unsigned int)howLong) 暂停指定的毫秒数 voidlayMicroseconds (unsigned int howLong) 暂停指定的微秒数

#include intserialOpen(char *device, int baud) 打开并初始化串口 void seriesPutchar(int fd, unsigned char c) 向串口发送一个字节的数据 voidserialPuts (int fd, char *s) 向串口发送一个字符串 int SerialDataAvail ( int fd) 获取串口缓冲区上可用的字节数 int SerialGetchar (int fd) 从串口读取并返回一字节数据。 加载前使用serialDataAvail来确定。 4. 示例代码1(发送数据到串口) #include #include #include int main(){ int fd; if(wiringPiSetup()==-1) { printf("初始化失败/ n"); -1。 fd =serialOpen("/dev/ttyAMA0",9600); while(1){ // SerialPutchar(fd,"c"); SerialPuts( fd,"hello world/r/n");// /r/n表示回车和换行。 } return 0;} 5、示例代码2(串口数据读取,终端输出阶段)相应的语句) #include #include #include int main(){ int fd; int cmd; if(wiringPiSetup()==-1){ printf("初始化失败/n"); fd =serialOpen("/dev/ttyAMA0",9600); while(1){ while(serialDataAvail(fd)!=-1){ cmd =serialGetchar(fd); //printf("数据:%d/ n",cmd); //printf("数据:%c/n",cmd); if(cmd=="2"){serialPuts(fd,"数据为 2/r/n"); if(cmd ==“3”){serialPuts(fd,“数据为3/r/n”); if(cmd==“4”){serialPuts(fd,“数据为4/r/n”);} } } return 0;}

创作并不容易。 只要用你的小手去喜欢和收集它们。

未经允许不得转载:主机频道 » 树莓派学习记录(五)串口通信(树莓派4串口)

评论 抢沙发

评论前必须登录!