你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8S003红外发送

[复制链接]
高杯脚 提问时间:2019-8-10 09:00 /
编码器初次上电时,可读目标板的地址;过半个小时不能读取时什么原因;图纸为目标板的红外发送电路图。
699F8473CF3895D6BF31E25048B30F1E.jpg
收藏 评论8 发布时间:2019-8-10 09:00

举报

8个回答
七哥 回答时间:2019-8-12 09:58:48
图上电路能工作,你要是怀疑这个器件有问题。
那么示波器测一下R11两端的波形,如果波形是好的,那么换一只IR333C-A试试。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

weiwei4 回答时间:2019-8-12 11:17:17
图怎么不翻转一下再发呢
R16的电阻太大了,你可以实际算一下R16的电流是多少,R11的电流(也就是发射管的电流)是多少
电阻太大,三极管实际工作在放大区域,这样不太好
高杯脚 回答时间:2019-8-14 16:56:20
大神:大家好;
sendwanbi_flag=1;//防止进入外部中断                          
disableInterrupts();                                             
GPIOC->CR2 &= (uint8_t)(~(GPIO_PIN_4));
delay_us(20000);                                     
IR_send_message(0xa2,~address1,address1);
delay_us(6000);                          
                                       
  GPIOC->CR2 |= (uint8_t)GPIO_PIN_4;                          
TIMER_Initializes();                           
UART_Initializes();                                                                  
sendwanbi_flag=0;                  
shake_flag=1;//读成功闪标志       
                          
enableInterrupts();       
红外发送数据程序,程序走到enableInterrupts();出现死机现象???求助。
高杯脚 回答时间:2019-8-14 17:13:52
高杯脚 发表于 2019-8-14 16:56
大神:大家好;
sendwanbi_flag=1;//防止进入外部中断                          
disableInterrupts();                                             

图纸上面的图;芯片是STM8S003
高杯脚 回答时间:2019-8-14 17:14:54
weiwei4 发表于 2019-8-12 11:17
图怎么不翻转一下再发呢
R16的电阻太大了,你可以实际算一下R16的电流是多少,R11的电流(也就是发射管的电 ...

大神:大家好;
sendwanbi_flag=1;//防止进入外部中断                           
disableInterrupts();                                             
GPIOC->CR2 &= (uint8_t)(~(GPIO_PIN_4));
delay_us(20000);                                      
IR_send_message(0xa2,~address1,address1);
delay_us(6000);                           
                                       
  GPIOC->CR2 |= (uint8_t)GPIO_PIN_4;                           
TIMER_Initializes();                           
UART_Initializes();                                                                  
sendwanbi_flag=0;                  
shake_flag=1;//读成功闪标志        
                           
enableInterrupts();        
红外发送数据程序,程序走到enableInterrupts();出现死机现象???求助。芯片是STM8S003
高杯脚 回答时间:2019-8-15 09:46:21
已解决。
使用的中断比较多,当disableInterrupts()后,实际是CPU CC寄存器中断位I1和I0全部置1,也就是3级(禁用软件优先级)属于最高优先级;当enableInterrupts()后,CPU CC寄存器中断位:I1位置1,I0位清0,也就是0级(主程序) ,属于最低优先级别,换句话说,此时任何新的或待处理的中断请求都可以中断或打断当前的执行程序, 所以问题是 中断优先级而导致的问题。
sendwanbi_flag=1;//防止进入外部中断                          
                           //asm("sim");//关全局中断                                                              
                           GPIOC->CR2 &= (uint8_t)(~(GPIO_PIN_4));//关外部中断
                           TIM4_Cmd(DISABLE);//禁止定时器中断
                           TIM2_Cmd(DISABLE);//禁止定时器中断                          
                           delay_us(20000);                                     
                           IR_send_message(0xa2,~address1,address1);
                           delay_us(6000);                                                                  
                             GPIOC->CR2 |= (uint8_t)GPIO_PIN_4;//开外部中断
                           sendwanbi_flag=0;
                           TIM4_Cmd(ENABLE);//使能外部中断
                           TIM2_Cmd(ENABLE);//使能外部中断                          
                           //TIMER_Initializes();                           
                           //UART_Initializes();
                           //TIM2_Cmd(ENABLE);
                   //TIM4_Cmd(ENABLE);
                           //asm("rim");//开全局中断                  
                           shake_flag=1;//读成功闪标志       

具体的解释参考:http://mp.weixin.qq.com/s/ScX5Y50K9jD6VUnORkWsmw
我就是看这个资料得到的结果;谢谢您提供的资料。
高杯脚 回答时间:2019-8-15 09:48:47
已解决
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版