[STM8] stm8的PD引脚异常问题

[复制链接]
3462|5
 楼主| 伐多2011 发表于 2012-10-7 17:19 | 显示全部楼层 |阅读模式
先上个代码
  1. #include "stm8s_conf.h"

  2. int main( void )
  3. {
  4. CLK->CKDIVR &=~((1<<4)|(1<<3));//配置时钟为内部RC,16M

  5. sim();//关总中断

  6. GPIOD->DDR |=(1<<2);//PD2为输出
  7. GPIOD->CR1 |=(1<<2);//推挽
  8. GPIOD->CR2 |=(1<<2);//输出速率为10M


  9. GPIOA->DDR |=(1<<3);//PA3为输出
  10. GPIOA->CR1 |=(1<<3);//推挽
  11. GPIOA->CR2 |=(1<<3);//输出速率为10M
  12. GPIOA->ODR |=(1<<3);//PA3为高

  13. rim();//开总中断

  14. GPIOD->DDR &=~(1<<2);//PD2为输入
  15. GPIOD->CR1 |=(1<<2);//上啦
  16. GPIOD->CR2 &=~(1<<2);//引脚中断失能

  17. GPIOA->ODR &=~(1<<3);//PA3为低

  18. while(1)
  19. {
  20. }

  21. }
我用的是stm8f3p6的芯片,发现开中断后不能运行后面的代码,我是用LED检测的,LED(PA3低电平亮)灯不亮。当我注释掉开总中断的时候,LED亮了。继续开中断并注释掉GPIOD->CR2 |=(1<<2);//输出速率为10M,这段代码后LED亮了,此时GPIOD的输出速率为2M。我接着又测试了一下,继续开中断,但将CLK->CKDIVR &=~((1<<4)|(1<<3));//配置时钟为内部RC,16M,这段代码注释掉后,LED也亮了,此时单片机时钟应该是RC,2M。我还在stm8105k6芯片做一样的测试,结果都是一样。奇怪的很
 楼主| 伐多2011 发表于 2012-10-8 11:13 | 显示全部楼层
自己顶
lvjing880907 发表于 2012-10-8 13:19 | 显示全部楼层
没有人回答吗!
 楼主| 伐多2011 发表于 2012-10-8 16:02 | 显示全部楼层
我继续顶
耶稣欠筹了 发表于 2012-10-8 20:09 | 显示全部楼层
母**,顶下贴!
 楼主| 伐多2011 发表于 2012-10-9 19:47 | 显示全部楼层
求解救啊:'(
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

64

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部