论坛大神
  
- 积分
- 886
- 金钱
- 886
- 注册时间
- 2011-12-25
- 在线时间
- 12 小时
|
不用关闭JTAG和SWD的功能,连接在
像原子哥开发板一样,对于IO作为输入的管脚没有影响。。
因为我尝试了把原子哥的《按键输入实验》的
u8 KEY_Scan(void)
{
static u8 key_up=1;//按键按松开标志
// JTAG_Set(JTAG_SWD_DISABLE);
if(key_up&&(KEY0==0||KEY1==0||KEY2==1))
{
delay_ms(10);//去抖动
key_up=0;
if(KEY0==0)
{
// JTAG_Set(SWD_ENABLE);
return 1;
}
else if(KEY1==0)
{
// JTAG_Set(SWD_ENABLE);
return 2;
}
else if(KEY2==1)
{
// JTAG_Set(SWD_ENABLE);
return 3;
}
}else if(KEY0==1&&KEY1==1&&KEY2==0)key_up=1;
// JTAG_Set(SWD_ENABLE);
return 0;// 无按键按下
}
全部屏蔽掉,效果跟之前一样。。
而对于IO作为输出就有影响,
像我坐的板子没有关掉执行调试功能就不能作为普通的IO...
、、、、、、、、、、、、、、、、、、、、、、、、、、、
还有原子哥库里面有一个BUG..
也是按键输入程序
u8 KEY_Scan(void)
{
static u8 key_up=1;//按键按松开标志
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
if(key_up&&(KEY0==0||KEY1==0||KEY2==1))
{
delay_ms(10);//去抖动
key_up=0;
if(KEY0==0)
{
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
return 1;
}
else if(KEY1==0)
{
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
return 2;
}
else if(KEY2==1)
{
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
return 3;
}
}else if(KEY0==1&&KEY1==1&&KEY2==0)key_up=1;
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
return 0;// 无按键按下
}
因为程序里面没有开启相应的时钟AFIO。。调用这个
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
函数也关不了。《这个问题导致了我模仿原子哥方法困扰了2个小时,不过我是太粗心了,那么低级的错误也会产生。。呵呵》
问题:是不是只对于输出才需要关,原因? |
|