简单一个问题困扰了我几天,做一下笔记
用的是树莓派3B ,串口默认配置是给蓝牙用的,要作为普通终端或串口程序通讯需完成几部:
1、sudo vim /boot/config.txt 文件
尾部添加两行:
dtoverlay=pi3-miniuart-bt // 映射蓝牙串口
enable_uart=1
做完这一步树莓派串口有输出信息了,作为串口打印输出信息,我们电脑终端输入信息时候,提示我们输入用户名和密码,所以还要接着配置
2、sudo vim /boot/cmdline.txt 文件
最终改为 dwc_otg.lpm_enable=0 console=tty1 console=serial, 115200 root=/dev/mmcblkop2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
minicom 和 wiringPi.h 函数都能正常通讯了,感觉第三部可有可无,待测试
3、sudo vim /lib/systemd/system/hciuart.service
更改了
After=dev-ttyAMA0.device
4、有执行 systemcctl disable hciuart 不知道有没影响
测试程序写的很简单
include 《stdio.h》
include 《string.h》
include 《unistd.h》
include 《wiringSerial.h》
int main(void)
{
int fd = 0;
int ret = 0;
fd = serialOpen(“/dev/ttyAMA0”, 115200);
if(fd < 0)
printf(“serial open failed …\n”);
while(1)
{
ret = serialGetchar(fd);
if(ret < 0)
continue;
printf(“ret = %d\n”, ret);
serialPuts(“12345”);
}
serialClose(fd);
return 0;
}