OpenEdv-开源电子网

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

STM8L外部中断后,不能正确的读取出该引脚的电平

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-12-12
在线时间
3 小时
发表于 2016-12-12 14:33:20 | 显示全部楼层 |阅读模式
4金钱
我向端口D的第4引脚发送频率为125K的PWM,通过触发第4引脚的外部中断,然后用一个数组记录触发后的电平和间隔时间,接收到的电平应该是0101010101...没想到接收到的电平是011011011011....
这是接收PWM的代码


============================
#include <STM8L152C6.h>
_Bool brkPin @PD_IDR:4;
unsigned char jumpSeq;
unsigned char brkEdge[32];
unsigned int imcstData[32];

void initTIM2(void)
{
        CLK_PCKENR1 |= 0x01;
       
        TIM2_CR1 = 0x00;
        TIM2_PSCR = 0x00;
        TIM2_ARRH = 0xff;
        TIM2_ARRL = 0xff;
        TIM2_IER |= 0x01;
}

main()
{
        //系统时钟二分频
        CLK_CKDIVR = 0x01;
        //位4设置双沿中断
        EXTI_CR2 = 0x03;
       
        //PD4配置为中断
        PD_DDR &= 0xef;
        PD_CR1 &= 0xef;
        PD_CR2 |= 0x10;
       
        jumpSeq = 0;
        initTIM2();
        _asm("rim");
       
        while (1);
}

@far @interrupt void brkRec(void)
{
        unsigned char recbit;
        recbit = brkPin;
       
        //清除标志位
        EXTI_SR1 = 0xff;
        EXTI_SR2 = 0xff;
        TIM2_CR1 = 0x00;
       
        imcstData[jumpSeq] = TIM2_CNTRH;
        imcstData[jumpSeq]= (imcstData[jumpSeq]<<8) + TIM2_CNTRL;
        brkEdge[jumpSeq] = recbit;
        TIM2_CNTRH = 0x00;
        TIM2_CNTRL = 0x00;
       
        jumpSeq++;
        if(jumpSeq==32)
                jumpSeq = 0;

        TIM2_CR1 = 0x01;
}
@far @interrupt void TIM2Over(void)
{
        TIM2_SR1 = 0x00;
        TIM2_CR1 = 0x00;
        TIM2_CNTRH = 0x00;
        TIM2_CNTRL = 0x00;
        jumpSeq = 0;
}


这个问题困扰好久了,有没有人来拯救我???
刚开始学,我使用的是STM8L152C6,金钱不多,还请多多帮忙啊!!!

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

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164867
金钱
164867
注册时间
2010-12-1
在线时间
2099 小时
发表于 2016-12-12 18:20:18 | 显示全部楼层
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-12-12
在线时间
3 小时
 楼主| 发表于 2016-12-13 08:55:04 | 显示全部楼层
自己也顶一下,我顶顶顶!!!
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-12-12
在线时间
3 小时
 楼主| 发表于 2016-12-13 10:48:25 | 显示全部楼层
大神们,进来逛逛啊
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-12-12
在线时间
3 小时
 楼主| 发表于 2016-12-14 08:44:08 | 显示全部楼层
我再顶!!!
回复

使用道具 举报

39

主题

599

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2102
金钱
2102
注册时间
2011-9-3
在线时间
117 小时
发表于 2016-12-14 10:42:20 | 显示全部楼层
帮顶。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-12-12
在线时间
3 小时
 楼主| 发表于 2016-12-14 15:48:06 | 显示全部楼层
我还顶
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-12-12
在线时间
3 小时
 楼主| 发表于 2016-12-19 16:02:15 | 显示全部楼层
顶顶!!!
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-12-12
在线时间
3 小时
 楼主| 发表于 2016-12-26 09:19:19 | 显示全部楼层
。。。。。。我去,还没人吗
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164867
金钱
164867
注册时间
2010-12-1
在线时间
2099 小时
发表于 2016-12-27 22:32:58 | 显示全部楼层
帮顶
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-12-12
在线时间
3 小时
 楼主| 发表于 2017-1-12 18:18:44 | 显示全部楼层
。。。。。。。。。。。为什么呢
回复

使用道具 举报

32

主题

881

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3899
金钱
3899
注册时间
2015-11-14
在线时间
534 小时
发表于 2017-2-8 17:17:33 | 显示全部楼层
EXTI_CR2 = 3<<6;这样才是设置PD端口为两个边沿都触发吧!如果是0的话就是下降沿和低电平触发
回复

使用道具 举报

头像被屏蔽

100

主题

111

帖子

0

精华

禁止发言

积分
416
金钱
416
注册时间
2017-2-5
在线时间
20 小时
发表于 2017-2-8 22:53:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-11-3
在线时间
29 小时
发表于 2017-2-17 15:18:52 | 显示全部楼层
我也遇到了这个问题。。PD4按键上拉输入。。还没有解决。。
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-11-3
在线时间
29 小时
发表于 2017-2-17 15:19:30 | 显示全部楼层
你解决了吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-4-27 02:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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