1.为什么要使用串口通信?
因为硬件模块化和软件模块化,要实现多机通信需要使用到串口通信
2.工作模式
2.1 全双工
相当于男女吵架,双方可以同时互怼
2.2 半双工
相当于男女吵架,一方在怼另一方只能听着
3.通信的条件
3.1 语言:
数据格式:1.数据位
2.停止位
3.奇偶校验位
3.2 语速:波特率
4.树莓派配置串口(首次使用串口)
5.串口相关函数
Demo
puts函数
#include <stdio.h>
#include <wiringSerial.h>
#include <wiringPi.h>
int initSerial(int fd)
{
wiringPiSetup();
fd = serialOpen("/dev/ttyAMA0",9600);
return fd;
}
int main()
{
int fd = initSerial(fd);
initSerial(fd);
while(1){
serialPuts(fd,"I love you\r\n");
delayMicroseconds(1000000);
}
return 0;
}
getchar函数
#include <stdio.h>
#include <wiringSerial.h>
#include <wiringPi.h>
int initSerial(int fd)
{
wiringPiSetup();
fd = serialOpen("/dev/ttyAMA0",9600);
return fd;
}
int main()
{
int fd = initSerial(fd);
int getData;
initSerial(fd);
while(1){
while(!serialDataAvail(fd) == 1);
getData = serialGetchar(fd);
printf("getData = %c\n",getData);
//serialPuts(fd,"I love you\r\n");
//delayMicroseconds(1000000);
}
return 0;
}