
我使用的是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); } |
看下SWD是否置1
DeBug一下,看下寄存器不就好咯
浪费时间才是最心疼的。