2019-03-24 17:27发布
lcofjp 发表于 2016-10-20 11:32 不行就加个串口扩展芯片
汤权 发表于 2016-10-20 12:20 其实这个跟红外遥控的接收一样的,检测中断下降沿然后在中断里面接收数据,时序对了就行了的啊,另外你的头 ...
hljjxzhla 发表于 2016-10-21 01:25 定时器中断里如何实现接收啊?有例子么?
最多设置5个标签!
加芯片成本就增加了啊
这是我的专属头像
相关资料在百度上有很多,你可以去看看
接收函数
void rxbyte(void)
{
unsigned char i;
if(RX==0)
{
delayrx(5);
if(RX==0)
{
P40=!P40;
delayrx(33);
readbuffer=0;
for(i=0;i<8;i++)
{
P40=!P40;
readbuffer>>=1;
if(RX==1)
{
readbuffer|=0x80;
}
else if(RX==0)
{
;
}
delayrx(19);
}
}
else
{
rxerror=1;
}
}
}
中断函数
void int_fun() __interrupt
{
if(INT2IF)
{
INT2IF=0;
INT2IE=0;
rxbyte();
INT2IE=1;
}
}
另外由于各个单片机晶振和指令周期不同,以及各个编译器生成的汇编代码也不一样,所以延时函数需要自己去解决了。
一周热门 更多>