这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 活动中心» 板卡试用» 【EFM8BB52】脑电小车——主题框架和原理图(三)

共32条 2/4 1 2 3 4 跳转至
专家
2022-01-06 08:08:15 打赏
11楼

学习


专家
2022-01-06 08:14:47 打赏
12楼

这么厉害


高工
2022-01-06 08:27:28 打赏
13楼

一款好玩的智力游戏。


高工
2022-01-06 08:42:42 打赏
14楼

看看


院士
2022-01-06 09:04:18 打赏
15楼

这个太高级了啊


工程师
2022-01-06 09:20:44 打赏
16楼

66666666666666


专家
2022-01-06 09:44:13 打赏
17楼

脑波接收、解读都已经有成熟产品了?了不得啊。


工程师
2022-01-06 10:10:25 打赏
18楼

很优秀


助工
2022-01-06 11:12:58 打赏
19楼

谢谢分享!


工程师
2022-01-06 16:41:48 打赏
20楼
/**********************接受脑电波数据********************************/ #include  bit receive_ok=0; //接收数据完成标志 //串口中用到u8 receive[36]={0}; //接收缓存 void UartInit() //9600bps@11.0592MHz{ PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 AUXR &= 0xBF; //定时器1时钟为Fosc/12,即12T AUXR &= 0xFE; //串口1选择定时器1为波特率发生器 TMOD &= 0x0F; //清除定时器1模式位 TMOD |= 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xFD; //设定定时初值 TH1 = 0xFD; //设定定时器重装值 ET1 = 0; //禁止定时器1中断 ES = 1; //允许串口1中断 TR1 = 1; //启动定时器1 } void main(){ variable_init();//外设初始化 UartInit();//串口初始化 EA=1; //打开CPU总中断开关 while(1) { if(receive_ok) { receive_ok = 0; //处理你的代码 ES=1;//再次允许串口中断 } }} //串口中断服务程序void UART_Rountine() interrupt 4{ static u8 count;//串口接收计数的变量 if(RI) { RI=0; receive[count]=SBUF; if(count==0&&receive[count]==0xAA) //同步信号 { count++; } else if(count==1&&receive[count]==0xAA) //同步信号 { count++; } else if(count==2&&receive[count]==0x20) //十进制32,表示后面要接收32个字节数据 { count++; } else if(count==3&&receive[count]==0x02) //代表信号标识,下一个数据即为信号值数据 { count++; } else if(count==4) //信号值 { count++; } else if(count==5&&receive[count]==0x83) //代表EEG信号开始了 { count++; } else if(count==6&&receive[count]==0x18) //十进制24,代表EEG Power是由24个字节组成的 { count++; } else if (count >=7 && count < 35) { count++; //一直加到receive[35] } else if(count==35)//最后一个数据,判断校验和,数据多的话是求和 { count=0; //计数清0 receive_ok =1;//串口接收完成标志,在主程序中判断,并做处理,然后清0 ES=0; //暂时关中断,数据处理完毕后再ES=1; } else//以上有任何一个条件不满足,将技术清0 { count=0;//判断不满足条件就将计数值清零 } } }



共32条 2/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]