OpenEdv-开源电子网

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

stm8s003k3t6单片机,为什么使能总中断后,会影响到PC6口?

[复制链接]

10

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2015-6-2
在线时间
22 小时
发表于 2017-4-5 11:08:52 | 显示全部楼层 |阅读模式
10金钱
enableInterrupts();  //使能总中断QT18B20_Init();

while(1)
{

}


unsigned char QT18B20_Init()
{
  unsigned char dat;
  DQ_OUT;
  DQ_OUT_L;
  delay_us(500);
  DQ_OUT_H;
  delay_us(60);
  DQ_IN;
  dat=DQ_READ;
  delay_us(240);
  DQ_OUT_H;
  return dat;
}


while(1)前面加了使能总中断,程序就会卡红色的这里,#define DQ_READ   GPIOC->IDR&=0x40,只要不使能总中断,就能顺利执行,我只有一个串口中断,但是没有使用,求大神帮忙看看

我还需努力,因为我还没做到持之以恒
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2015-6-2
在线时间
22 小时
 楼主| 发表于 2017-4-5 11:24:03 | 显示全部楼层
纠正一下,不是这个问题,是只要开了中断,就会在固定的时间程序跑到别处去了,但是没查出来去哪了
我还需努力,因为我还没做到持之以恒
回复

使用道具 举报

557

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165002
金钱
165002
注册时间
2010-12-1
在线时间
2102 小时
发表于 2017-4-5 18:54:36 | 显示全部楼层
帮顶
回复

使用道具 举报

32

主题

881

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3927
金钱
3927
注册时间
2015-11-14
在线时间
535 小时
发表于 2017-4-6 10:37:11 | 显示全部楼层
你应该是那里来了中断了,STM8的IO寄存器操作有顺序的,不然非常容易误操作为外部中断,假设配置为输出,一般情况是先配置DDR寄存器,再配置CR2寄存器,如果是要从输出模式配置为输入模式,先操作CR2寄存器再操作DDR寄存器
回复

使用道具 举报

50

主题

1804

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6639
金钱
6639
注册时间
2016-5-29
在线时间
907 小时
发表于 2017-4-6 16:48:01 | 显示全部楼层
GPIOC->IDR&=0x40 ,IDR是只读寄存器.怎么可以这样子写.你是不是想 这样子 ((GPIOC->IDR&0X40)!=0)
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-26 09:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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