OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4776|回复: 2

按照论坛以前人写的红外输出程序改的,但是为什么不能工作?

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2014-2-6
在线时间
0 小时
发表于 2014-2-6 14:26:28 | 显示全部楼层 |阅读模式
        
        /*PC6作为红外发射引脚,设置生成38Khz的PWM*/
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE); 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE); 
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6; 
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; 
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; 
GPIO_Init(GPIOC, &GPIO_InitStructure); 
TIM_TimeBaseStructure.TIM_Period = 1894; //不分频。PWM频率=72000/1894=38Khz 
TIM_TimeBaseStructure.TIM_Prescaler = 0; 
TIM_TimeBaseStructure.TIM_ClockDivision = 0; 
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; 
TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure); 

TIM_ARRPreloadConfig(TIM8, ENABLE); 

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 
TIM_OC1Init(TIM8, &TIM_OCInitStructure); 

TIM_OC1PreloadConfig(TIM8, TIM_OCPreload_Enable); 
TIM_Cmd(TIM8, ENABLE);

TIM_CtrlPWMOutputs(TIM8, ENABLE); 

/*发射程序*/
void IRRmote_Send(u8 addressCode,u8 dataCode) 
//9ms 
TIM_Cmd(TIM8, ENABLE); 
delay_ms(9); 
//4.5ms 
TIM_Cmd(TIM8, DISABLE); 
delay_ms(4); 
delay_us(500); 
IRRmote_Send_Byte(addressCode); //用户码 
IRRmote_Send_Byte(~addressCode); //用户反码 
IRRmote_Send_Byte(dataCode); //数据码 
IRRmote_Send_Byte(~dataCode); //数据反码 
//下面增加是为了避免在发送最后一位时出现错码 
TIM_Cmd(TIM8, ENABLE); 
delay_us(565); 
TIM_Cmd(TIM8, DISABLE); 
delay_us(565); 

void IRRmote_Send_Byte(u8 getdata) 
u8 senddata,i; 
senddata=getdata; 
for(i=0;i<8;i++) 
if(senddata&0x01) 
//1 
TIM_Cmd(TIM8, ENABLE); 
delay_us(565); 
TIM_Cmd(TIM8, DISABLE); 
delay_us(565); 
delay_us(565); 
delay_us(565); 
else 
//0 
TIM_Cmd(TIM8, ENABLE); 
delay_us(565); 
TIM_Cmd(TIM8, DISABLE); 
delay_us(565); 
senddata=senddata>>1; 
}

           这样发射有问题么?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-2-8 17:42:57 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-2-8 17:43:06 | 显示全部楼层
你用示波器看看波形.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-13 21:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表