stm8s003 swim口做IO内置上拉输入总是失败
如题,设计了一个小板子,没留够IO口,仅差一个输入信号口。输入信号是个无源的开关量。于是考虑用swim口搞。。。还不加上拉电阻。。。
问题来了。
相关代码:
//swim口是PD1
//禁用SWIM
CFG->GCR=0x01;//SWD禁用 使能PD1正常IO功能
GPIOD->ODR=0x00;
GPIOD->CR1=0x76;//PD2/4/5/6输出 PD3悬空 PD1~6存在
GPIOD->DDR=0x74;//PD2/4/5/6输出
GPIOD->CR2=0x08;//PD3输入中断 输出低速
然后,就够了吗?就够了吗?就够了吗?
结果是惨淡的。。IO检测到几乎是随机的电平。。变成了悬空输入。
大家评评理,我是忘掉什么了?
还是这口就是不能做带上拉的输入?明明SWIM口PD1标注的是(HS)来着。。
结贴,结贴。。
最终并不是设置代码出问题,而是读取代码出问题。
我读了整个D口偏偏屏蔽了PD1。逻辑反了。在此自杀10分钟。。。:L
于是出现如此神奇的一幕。
事实证明这口能做输入,还能自带上拉。而且禁用SWD只需要那一条代码。 没人回,顶一下。由于不是重要项目,后续没有再试验。纯讨论性质。 SWD口好像不能设置高电平,,有一次就是因为我把它设置为输出,,立刻锁死了不能下载 感觉应该是SWIM未能正常禁止。
楼主可以参考一下:
http://blog.csdn.net/FreeApe/article/details/47008033 好象不能用吧 他复用可以做beep 请看数据手册的描述:The PD1 pin is in input pull-up during the reset phase and after internal reset release. 延时1s以后在定义这个IO试试 :Q:Q:Q:Q:Q:Q:Q:Q
好像跟RESET有关。
请看数据手册的描述:The PD1 pin is in input pull-up during the reset phase and after internal reset release.
页:
[1]
2