找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2550|回复: 10
打印 上一主题 下一主题
收起左侧

单片机红外线接收问题-stm8s208开发板的程序移植到stm8s003就不行了

[复制链接]
跳转到指定楼层
楼主
ID:388929 发表于 2021-7-5 22:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我有个stm8s208开发板,红外接收的程序是NEC协议的,按原程序移植到stm8s003就不行了,得到的现象是定时器2的计算时间好奇怪,我通过外部中断来开始计数,下次中断关闭计数,正常计数值在一万3左右,移植到STMS003后,数值从十几到几万的都有,请问有没有人遇到过这样的问题的呢,同样的程序在开发板里是正常得很的。。。。
先谢谢各位
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2021-7-6 08:38 | 只看该作者
1、先弄清楚红外编码原理。
2、再弄清成功的程序是如何解码的。
3、移植后的程序与原程序比,在什么地方,解码参数发生了改变?
回复

使用道具 举报

板凳
ID:887202 发表于 2021-7-6 09:13 | 只看该作者
首先你的外部中断触发方式是什么呢?上升沿还是下降沿?定时器计数值在一万三左右,那么这个一万三代表的时间是多少呢,移植以后测到的时间是多少呢?这个跟你的定时器的计数频率有关系,首先去检查你移植前的程序时怎么解码的,相关的具体时间时多少,那么你移植以后要保持这个时间不变,就要注意定时器的频率问题了,频率不同,计数一万三所代表的时间也就不同,解码就容易出问题,不明白可以私聊我
回复

使用道具 举报

地板
ID:388929 发表于 2021-7-6 09:55 | 只看该作者
yzwzfyz 发表于 2021-7-6 08:38
1、先弄清楚红外编码原理。
2、再弄清成功的程序是如何解码的。
3、移植后的程序与原程序比,在什么地方 ...

你好,我弄清楚原理的,也知道原程序是如何解码的,移植后的程序有以下的不同,外部中断的引脚改了,中断处理改了,时钟是一样的内部时钟16MHz,我主程序什么都没改。。。
回复

使用道具 举报

5#
ID:388929 发表于 2021-7-6 09:59 | 只看该作者
我这是外部下降沿中断,16MHz内部分频16,每次计数1us,13500就是13.5ms,相当于NEC协议里的头码时长,正常都在13500上下波动,现在我移植之后就变到十几至5万多之前波动。。。。我整了两三个星期了都没看出问题点,实在没招了才来问问大家,希望大家能给点思路该怎么去查这个问题点在哪
回复

使用道具 举报

6#
ID:123289 发表于 2021-7-6 10:27 | 只看该作者
既然清楚原理,也可以自己写,这个并不是太难的。测量脉冲的宽度,解出0、1,再组装一下,也就成了。
这里有个两个要点:
1、就是如何界定0、1,需要给个允错范围,即1=什么到什么范围内?0=同理。
2、脉冲的起点与终点,计时不能受干扰。需要仔细规划一下。
回复

使用道具 举报

7#
ID:388929 发表于 2021-7-6 15:35 | 只看该作者
yzwzfyz 发表于 2021-7-6 10:27
既然清楚原理,也可以自己写,这个并不是太难的。测量脉冲的宽度,解出0、1,再组装一下,也就成了。
这里 ...

我也在想是不是计时器是不是受干扰了,甚至怀疑是不是优先级的问题,总是计时不准
回复

使用道具 举报

8#
ID:161164 发表于 2021-7-6 16:14 | 只看该作者
STM不熟,你又不上代码
软件方面:
外部中断的引脚设对了吗?
中断处理设对了吗?
时钟频率设对了吗?
分频设对了吗?
有试过用最简单的代码去产生一个固定频率的方波吗?

硬件方面
电路画对了吗?
有没有空焊?
电源稳定吗?
回复

使用道具 举报

9#
ID:388929 发表于 2021-7-6 21:12 | 只看该作者
我现在发现了是中断的问题,红外接收脚我单独用外部中断去控制一个灯时,用手摸那个红处接收头的供电脚竟然能触发灯亮。。。。这到底是灵敏呢还是有干扰。。。
回复

使用道具 举报

10#
ID:161164 发表于 2021-7-6 22:21 | 只看该作者
billaj 发表于 2021-7-6 21:12
我现在发现了是中断的问题,红外接收脚我单独用外部中断去控制一个灯时,用手摸那个红处接收头的供电脚竟然 ...

脚浮空了,加上拉电阻吧
回复

使用道具 举报

11#
ID:517951 发表于 2021-7-8 12:00 | 只看该作者
两个系统用的晶振是不是一样? 红外接收对时序有要求的, 晶振不同,还有单片机系统设置不一样,会导致接收时序差异较大,导致接收失败
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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