你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
creep 发表于 2015-6-4 22:24 如果能把jlink驱动升级到V4.90e版本以上,可以使用jlink的Jlink RTT client或者Jlink RTT logger 输出打 ...
阳阳NO1 发表于 2015-6-4 22:52 焊了个串口出来了,测试了下,还是IO口没配好,有时按下按键,然后将按键设置成EXTI模式,系统进入stop, ...
creep 发表于 2015-6-4 23:22 我现在怀疑你的那个按键有问题了。是不是按键太灵敏了?千万别是硬件到底问题了。 ...
阳阳NO1 发表于 2015-6-4 23:40 我的硬件就一个上拉电阻,配置我上拉下拉都改过,无济于事,那我明天换个按键试试。 但是从道理上讲,是 ...
creep 发表于 2015-6-5 09:07 我想了下你说的这个长按按键会导致唤醒后再次进入休眠模式的可能性确实是存在的,但是比较可惜的是我在这 ...
æµè¯è¿å ¥stop模å¼.rar
2015-6-5 09:53 上传
点击文件名下载附件
7.23 MB, 下载次数: 41, 下载积分: ST金币 -1
阳阳NO1 发表于 2015-6-5 10:57 似乎找到原因了,我有点怀疑是IO口切换状态的时候出的问题,于是我在IO口切换状态的时候,添加了延时。 ...
creep 发表于 2015-6-5 11:03 如果是按我的那个测试程序改的话,无论如何都不应该连续发生2次按键中断事件,更别说3次了。这说明进入中 ...
阳阳NO1 发表于 2015-6-5 11:17 不是的,那是外部中断0产生的中断,外部中断0我是用来检测交直流的,所以我设置的是上升下降沿都产生中断 ...
creep 发表于 2015-6-5 11:24 看来你把这个问题解决了啊,恭喜!!
焊了个串口出来了,测试了下,还是IO口没配好,有时按下按键,然后将按键设置成EXTI模式,系统进入stop,立马又被中断唤醒。有时唤醒之后将IO口设置成普通输入输出,但里面就进入stop模式了
我现在怀疑你的那个按键有问题了。是不是按键太灵敏了?千万别是硬件到底问题了。
我的硬件就一个上拉电阻,配置我上拉下拉都改过,无济于事,那我明天换个按键试试。
但是从道理上讲,是有可能啊,比如进入STOP之后,按下按键触发中断,然后在中断里面配置引脚为输入引脚,退出中断,在主程序里面去按键扫描,如果手按的时间长点,就会检测到这个按键按下,这不又是进入到stop模式了啊
我想了下你说的这个长按按键会导致唤醒后再次进入休眠模式的可能性确实是存在的,但是比较可惜的是我在这个开发板怎么也测试不到这种情况的发生,无论是长按还是短按程序都能正常工作。为了避免你i说的那个情况的发生可以修改下按键中断代码如下,加上按键的按下使能标志。你再测试下在你的板子上是否能正常工作。
你的这种办法我昨晚上也想到了,我还做了实验,效果很差:
我甚至修改按键扫描,添加了松手检测,只有在手松开的时候,才去返回KEY_PRESS;
U8 Key_Scan(void)
{
if(g_KeyRelease && (!KEY_USER_STA)) /*表示有按键按下*/
{
delay_ms(10);
if(!KEY_USER_STA)
{
while(!KEY_USER_STA);
g_KeyRelease = ENABLE;
return KEY_PRESS;
}
}
else if(KEY_USER_STA)
g_KeyRelease = ENABLE;
return 0;
}
现象如下:
而且一出现这样的情况,按键就失去左右了,再也唤不醒芯片了。
说实话,我真的有点想不通了,将测试工程上传至附件,希望得到高人指点
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\413351855\QQ\WinTemp\RichOle\}DN2_P0I$BQ97$Z7R05F}IL.png
æµè¯è¿å ¥stop模å¼.rar
2015-6-5 09:53 上传
点击文件名下载附件
下载积分: ST金币 -17.23 MB, 下载次数: 41, 下载积分: ST金币 -1
似乎找到原因了,我有点怀疑是IO口切换状态的时候出的问题,于是我在IO口切换状态的时候,添加了延时。
暂时测试出来效果很好:
外部中断0和1都可以唤醒,只是外部中断0怎么一下子中断了3次,我设置的是上升沿下降沿都中断,应该是2次才读,可能有抖动吧
我会继续测试stop模式的
如果是按我的那个测试程序改的话,无论如何都不应该连续发生2次按键中断事件,更别说3次了。这说明进入中断函数里配置IO的状态并没有关闭中断使能才导致又发生中断。
不是的,那是外部中断0产生的中断,外部中断0我是用来检测交直流的,所以我设置的是上升下降沿都产生中断。我现在用来开关机键是外部中断1,外部中断1是很好的,每次就是一次中断。
看来你把这个问题解决了啊,恭喜!!
也多亏了你的帮忙啊!