OpenEdv-开源电子网

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

按键扫描 问题出在哪。

[复制链接]

32

主题

286

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1366
金钱
1366
注册时间
2014-3-27
在线时间
358 小时
发表于 2015-12-7 15:30:06 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]int main(void) { RCC_Configuration(); delay_init(72); NVIC_Configuration(); SegCtrl(); DS18B20_Init(); HEF4053_CTRL(); AdsConfig(); Key_GPIOinit(); TIM2_Int_Init(49,7199); TIM3_Int_Init(49,7199); TIM4_Int_Init(49,7199);//5MS while(1) { //Keyread(); // //Key_Scan();//按键读取及扫描程序[/mw_shl_code] [mw_shl_code=c,true]        //其它代码 ******* ******* } void TIM3_IRQHandler(void) // { if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); Keyread(); // Key_Scan();//按键读取及扫描程序 while(Kprocond.K1ShortDown)// { DStemper_Disp(DS18B20_Get_Temp()/10); if(Timersys.TIM2RespFlag)// { Kprocond.K1ShortDown=0; Timersys.TIM2RespFlag=0; break; } } } }[/mw_shl_code] [mw_shl_code=c,true]void Keyread (void) //按键读取 {  unsigned char ReadData;   ReadData=(unsigned char)(GPIOA->IDR); //   Triger=ReadData&(ReadData^Continue);    Continue=ReadData;    //delay_ms(1);  } [/mw_shl_code]
上面是主程序  和定时器中断3以及按键读取的代码。定时器3溢出时间为5MS,另外还用了定时器2、4。
Keyread(); //
Key_Scan();//按键读取及扫描程序
这两行代码放主程序中时,全速运行时,程序会停止在delayms函数中,单步调试时,正常。
如果放在定时器3中断中,没有问题。

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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 01:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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