智能家居LED控制
时间:10-02
整理:3721RD
点击:
各位大神,我想问一下,LED的操作是串口的读和写,比如这个例子,这是发送一个点亮彩色LED的指令,类似于这种十六进制的命令还有上百条,我该怎么处理这个命令呢?
struct termios Opt;//串口配置结构体
int fd = open("/dev/ttyAMA0", O_RDWR | O_NOCTTY | O_NDELAY);//打开串口
if (-1 == fd)//不能打开串口
{
printf("cannot open ttyAMA0\n");
return -1;
}
tcgetattr(fd, &Opt);//获取当前设置
//设置输入输出波特率
cfsetispeed(&Opt, B115200);
cfsetospeed(&Opt, B115200);
tcsetattr(fd, TCSANOW, &Opt);// TCSANOW立即生效
char tmp[256] = {0x2A, 0x2B, 0x41, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x0B, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x25, 0x00, 0x00, 0x00, 0xD1, 0x2B, 0x00, 0x00, 0x08, 0x01, 0x01, 0xFF, 0x00, 0xFF, 0x00, 0xFF,
0x00, 0xB4, 0x23};//指令
int itmp = strlen(tmp);//指令长度
int ret = write(fd, tmp, sizeof(tmp));//将指令写入串口 ret实际写入字节数
printf("ret: %d\nitmp: %d\ntmp: %s\n", ret, itmp,tmp);
res = read(fd,buf,len); //res读取的字节数
close(fd);//关闭串口
struct termios Opt;//串口配置结构体
int fd = open("/dev/ttyAMA0", O_RDWR | O_NOCTTY | O_NDELAY);//打开串口
if (-1 == fd)//不能打开串口
{
printf("cannot open ttyAMA0\n");
return -1;
}
tcgetattr(fd, &Opt);//获取当前设置
//设置输入输出波特率
cfsetispeed(&Opt, B115200);
cfsetospeed(&Opt, B115200);
tcsetattr(fd, TCSANOW, &Opt);// TCSANOW立即生效
char tmp[256] = {0x2A, 0x2B, 0x41, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x0B, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x25, 0x00, 0x00, 0x00, 0xD1, 0x2B, 0x00, 0x00, 0x08, 0x01, 0x01, 0xFF, 0x00, 0xFF, 0x00, 0xFF,
0x00, 0xB4, 0x23};//指令
int itmp = strlen(tmp);//指令长度
int ret = write(fd, tmp, sizeof(tmp));//将指令写入串口 ret实际写入字节数
printf("ret: %d\nitmp: %d\ntmp: %s\n", ret, itmp,tmp);
res = read(fd,buf,len); //res读取的字节数
close(fd);//关闭串口
不知道你在说什么!
用的什么软件协议栈?什么硬件芯片?什么应用环境?
贴这么一点代码,没时间猜你的想法!