NEC红外发射问题;
时间:10-02
整理:3721RD
点击:
请教NEC协议红外编码解码问题,我接收用的原子的例程,自己写的红外发射程序,,严格按照时序来的,但是就是接收不到红外发送的信息,程序在下面,希望有朋友为我解惑,感激不尽;
//红外发射程序;
void Submit_Data(u8 addr,u8 data)
{
u8 addr_count,data_count;
u8 addr_buff=0,data_buff=0,data_flag=0;
PWM_PA3=0;
delay_us(4500);
Star_Submit(); //发射引导码函数;
addr_buff=addr;
for(addr_count=8;addr_count>0;addr_count--) //·¢?íμ??·??、、发送地址码
{
data_flag=addr_buff>>(addr_count-1)&0x01;
if(data_flag==0) Submit_Code_Zero();
else if(data_flag==1) Submit_Code_One();
}
addr_buff=~addr;
for(addr_count=8;addr_count>0;addr_count--) //·¢?í ~μ??·发送地址反码
{
data_flag=addr_buff>>(addr_count-1)&0x01;
if(data_flag==0) Submit_Code_Zero();
else if(data_flag==1) Submit_Code_One();
}
addr_buff=data ;
for(addr_count=8;addr_count>0;addr_count--) //·¢?ídata 发送数据
{
data_flag=addr_buff>>(addr_count-1)&0x01;
if(data_flag==0) Submit_Code_Zero();
else if(data_flag==1) Submit_Code_One();
}
addr_buff=~data ;
for(addr_count=8;addr_count>0;addr_count--) //·¢song ~data 发送数据反码
{
data_flag=addr_buff>>(addr_count-1)&0x01;
if(data_flag==0) Submit_Code_Zero();
else if(data_flag==1) Submit_Code_One();
}
}
void Star_Submit(void)
{
PWM_PA3=1895;
delay_ms(9);
PWM_PA3=0;
delay_us(4500);
}
void Submit_Code_Zero(void) //·¢?í?°0?± 发送一位0;
{
PWM_PA3=1895;
delay_us(560);////? ?μ560£?
PWM_PA3=0;
delay_us(560);
}
void Submit_Code_One(void) //·¢?í?°1?±、、发送一位1;
{
PWM_PA3=1895;
delay_us(560);
PWM_PA3=0;
delay_us(1650);
}
PWM_PA3是一个pwm通道,频率是38khz;72M的计数频率,1895差不多就是38khz;
我用示波器看的话波形没问题,时序也不错,可是就是接收不到发送的数据;
发射是在主函数里while循环; while(1)
{
Submit_Data( 0x0000, 24);
}
有没有哪位大神为我解答一下啊,,
你好,在吗?
我现在在做 stm8s 的红外发射 ,想借鉴你的,求帮助。谢谢
ding ding,zuo deng da xia jie da
pwm一开始的是低还是高啊?