夏秋先生 发表于 2016-1-20 09:54:10

无法禁用SWIM,使用的是stm8s103芯片

我使用的是stm8s103芯片,由于管脚紧张,需要swm/pd1管脚,我在设计时做了跳线兼容处理,非调试时,通过跳线使用PD1 GPIO功能,但是我在测试时发现无法控制PD1的输出,大家有没有遇到过这个问题?
我的代码:

CFG->GCR=CFG_GCR_SWD;
while(1)
{
GPIO_Init(GPIOD, GPIO_PIN_1, GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOD, GPIO_PIN_1, GPIO_MODE_OUT_PP_LOW_FAST);
}

用示波器观察,一直为高电平,没有发生跳变。而测试PA1 的时候,示波器能看到跳变波形,这说明测试代码是没有问题的,我认为问题出在SWIM实际上没有禁用,导致PD1无法使用,但是如何解决这个问题呢,一头雾水,这个问题解决不了的话,我又要改板了,心痛心痛呀。下面是测试PA1跳变的代码。
while(1)
{
GPIO_Init(GPIOA, GPIO_PIN_1, GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOA, GPIO_PIN_1, GPIO_MODE_OUT_PP_LOW_FAST);
}

JackieLaura 发表于 2016-1-20 11:01:29

是不是要编辑option type。。。

我的颈 发表于 2016-1-20 12:44:13

DeBug一下,看下寄存器不就好咯:)

我的颈 发表于 2016-1-20 12:51:28


看下SWD是否置1

圆点博士后 发表于 2016-1-20 13:35:17


DeBug一下,看下寄存器不就好咯

xmshao 发表于 2016-1-20 15:30:22

肯定可以禁用SWIM的。好好检查下代码。
浪费时间才是最心疼的。:)

dsjsjf 发表于 2016-1-20 20:04:48

帮顶一下

zcl201207 发表于 2016-1-20 21:51:21

楼主加油:):)
页: [1]
查看完整版本: 无法禁用SWIM,使用的是stm8s103芯片