OpenEdv-开源电子网

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

挺奇怪,很简单的一个程序,在中断函数内执行就是不行。

[复制链接]

13

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2013-1-4
在线时间
1 小时
发表于 2013-8-30 08:46:48 | 显示全部楼层 |阅读模式

挺奇怪,很简单的一个程序,在中断函数内执行就是不行。

TIM1通道1工作在外部计数模式,通过PA8对外部脉冲计数。下面中断程序主要执行一个IO输出的翻转。 主函数IO初始化的时候已经对PA7进行了初始化, 但在中断函数内必须每次再初始化一次才能有效驱动PA7输出,而直接手动利用延迟在主函数内执行这个IO的翻转完全没有问题。奇怪了。。
 


 void TIM1_UP_IRQHandler(void)
{

TIM1->SR&=0;//清除中断标志位

/*********************************/

RCC->APB2ENR|=1<<2;    //使能PORTA时钟      
GPIOA->CRL&=0X0FFFFFFF;
GPIOA->CRL|=0X30000000;//PA7推挽输出  
/*********************************/


if (sign==0) {PAout(7)=1;sign=1;}
else {PAout(7)=0;sign=0;}

}

 

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-30 10:03:41 | 显示全部楼层
回复【楼主位】Jack:
---------------------------------
在里面,先判断SR,再翻转IO。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-14 03:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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