7个帖子/ 0新
最后一篇
Heminghui
离线
最后一次露面:4年3个月前
加入:2017年3月9日06:30
J-LINK烧录SCLK和TMS怎样设为GPIO口

因IO口不够,把SCLK和TMS PIN 用作普通IO驱动指示灯。按IO的设置方法:在void GPIO_reservations(void)内设定 RESERVE_GPIO( GPIO, GPIO_PORT_1, GPIO_PIN_4, PID_GPIO); //G led 和void set_pad_functions(void) 内设定 GPIO_ConfigurePin( GPIO_PORT_1, GPIO_PIN_4, OUTPUT, PID_GPIO, false); // G LED 为普通GPIO口, 但是设为高电平输出GPIO_SetActive(GPIO_PORT_1, GPIO_PIN_4); 时,P1.4口一直为低电平,是什么原因呢?

设备:
wi_dialog.
离线
最后一次露面:2天前1周
职员
加入:2014年1月3日16:21
你好,

你好,
请确保SYS_CTRL_REG [DEBUGGER_ENABLE]如下设置为“0" 配置JTAG引脚GPIO:
SetBits16(SYS_CTRL_REG,DEBUGGER_ENABLE,0);//关闭调试器
问候,

Heminghui
离线
最后一次露面:4年3个月前
加入:2017年3月9日06:30
非常感你的回复。代码已经是把所有设定SetBits16

非常感你的回复代码已经是把所有设定SetBits16(SYS_CTRL_REG,DEBUGGER_ENABLE,0);关掉所有的调试器,P1.4口还是无法控制高低电平输出。如果我把P1.4口改为P1.2可以看到灯闪烁,因此代码是没有问题,还是P1.4的配置问题,请在帮忙看下是否其它地方还需要修改.SDK版本为V_5.150.2。
空隙timer_callback(无效)
{
静态无符号字符标志= 0;
如果(标志)
{
// GPIO_SetPinFunction(GPIO_CON_GLED_PORT,GPIO_CON_GLED_PIN,OUTPUT PID_GPIO);
// GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_4,OUTPUT PID_GPIO,TRUE);//ģLED
// GPIO_SetActive(GPIO_PORT_1,GPIO_PIN_2);
GPIO_SetInactive(GPIO_PORT_1,GPIO_PIN_4);
标志= 0;
}
别的
{
// GPIO_SetPinFunction(GPIO_CON_GLED_PORT,GPIO_CON_GLED_PIN,OUTPUT PID_GPIO);
// GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_4,OUTPUT PID_GPIO,FALSE);//ģLED
// GPIO_SetInactive(GPIO_PORT_1,GPIO_PIN_2);
GPIO_SetActive(GPIO_PORT_1,GPIO_PIN_4);
标志= 1;
}
}

wi_dialog.
离线
最后一次露面:2天前1周
职员
加入:2014年1月3日16:21
你好,

你好,

你介意运行此修改后的代码来验证JTAG正确禁用?

空隙timer_callback(无效)
{
静态无符号字符标志= 0;

如果(GetWord16(SYS_STAT_REG)DBG_IS_UP)== DBG_IS_UP)
{
如果(标志)
{
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_2,OUTPUT,PID_GPIO,真正的);
标志= 0;
}
别的
{
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_2,OUTPUT PID_GPIO,FALSE);
标志= 1;
}
}
别的
{
如果(标志)
{
// GPIO_SetPinFunction(GPIO_CON_GLED_PORT,GPIO_CON_GLED_PIN,OUTPUT PID_GPIO);
// GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_4,OUTPUT PID_GPIO,TRUE);//ģLED
// GPIO_SetActive(GPIO_PORT_1,GPIO_PIN_2);
// GPIO_SetInactive(GPIO_PORT_1,GPIO_PIN_4);
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_4,OUTPUT,PID_GPIO,真正的);
标志= 0;
}
别的
{
// GPIO_SetPinFunction(GPIO_CON_GLED_PORT,GPIO_CON_GLED_PIN,OUTPUT PID_GPIO);
// GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_4,OUTPUT PID_GPIO,FALSE);//ģLED
// GPIO_SetInactive(GPIO_PORT_1,GPIO_PIN_2);
// GPIO_SetActive(GPIO_PORT_1,GPIO_PIN_4);
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_4,OUTPUT PID_GPIO,FALSE);
标志= 1;
}
}
}

感谢致敬,

Heminghui
离线
最后一次露面:4年3个月前
加入:2017年3月9日06:30
用这段代码,证明JTAG已是关闭.P1.2

用这段代码,证明JTAG已是关闭.P1.2上的LED不会闪烁,同时P1.4上的LED也不会闪烁。

wi_dialog.
离线
最后一次露面:2天前1周
职员
加入:2014年1月3日16:21
你好,

你好,

不知道你是如何验证您的LED闪烁功能。您的问题可能是由于进入睡眠模式过时了你的软定时器。为了证实这一假设,能否请你添加一个声明,如下重新运行测试。这种说法很给力的软件活着。

int main_func(void)
{
.....
//得到允许的睡眠模式
//从rwip_power_down时间()来WFI()必须保持尽可能短!!
SLEEP_MODE = rwip_power_down();
/ *声明说* /
如果((SLEEP_MODE == mode_ext_sleep)||(SLEEP_MODE == mode_deep_sleep))
{
SLEEP_MODE = mode_idle;
}
.....
}

问候,

Heminghui
离线
最后一次露面:4年3个月前
加入:2017年3月9日06:30
已经试过,和睡眠没有关系。如果我把P1.2和P1

已经试过,和睡眠没有关系。如果我把P1.2和P1.4相互对换一下,是可以看到P1.2上的LED灯闪烁。是不是底层代码需要更改哪里不?
谢谢~~~