树莓派外设开发接口文档参考
https://www.cnblogs.com/lulipro/p/5992172.html
树莓派和语音模块的接线示意图
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL0kleNVzaq1UMVpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0gzM0EDOzcDMxMzNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
代码如下:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main ()
{
int fd;
char cmd[128] = {'\0'};
int nread;
/*初始化树莓派*/
if(wiringPiSetup() == -1)
{
printf("初始化失败!\n");
return -1;
}
/*linux一切皆文件,打开串口文件*/
fd = serialOpen("/dev/ttyAMA0");
while(1)
{
nread = read(fd,cmd,sizeof(cmd));
if(strstr(cmd,"open") != NULL)
{
printf("open light\n");
}
if(strstr(cmd,"close") != NULL)
{
printf("close light");
}
/*清空数组*/
memset(cmd,'\0',sizeof(cmd));
}
}
思路:
语音模块会将识别的结果打印到串口文件,树莓派通过serialOpen打开串口文件。使用read函数读取识别的结果,然后通过判断去执行不同的分支。