对于生手来说,ST提供的GPIO这个sample够害人的

[复制链接]
18074|23
 楼主| McuPlayer 发表于 2008-1-6 00:50 | 显示全部楼层 |阅读模式
对于生手来说,GPIO这个sample够害人的
我的一个产品在用STM32F103,打样回来,焊接。
焊接好最小系统,USB转串口的sample测试,OK;继续焊接,GPIO的sample测试,挂了。然后开始怀疑自己的焊工是不是不过关,或者烙铁的ESD不起作用了。
算了,重新焊块板子,继续上次的OK和失败。
最后得一结论,每次都在GPIO这个sample的测试后就挂了,于是去仔细看source code,找到了,原来是在演示如何把JTAG的Port做IO用。多亏留下一个后门,好像是PB9,这里有个if和else,否则这JTAG怕是挂了,除非用烧录器把它恢复(ISP是否能行,没有仔细斟酌)。
于是,把if else对应的这个IO接VDD,复位,跑,ULINK连接,哈哈哈,好了。断电再上电,一试验,又不行了,还得拉IO到VDD救命。这次学乖了,当ULINK可以连接的时候,赶快把我熟悉的USB串口程序下载上去,然后怎么断电也不怕了。
hotpower 发表于 2008-1-6 04:28 | 显示全部楼层

学习学习~~~

qihao 发表于 2008-1-6 09:51 | 显示全部楼层

哈哈哈哈

我就看你当先烈  我不吱声~~~~~   

这些Demo 的作者完全是站在IC的角度很炫耀的来写Demo的,根本不是为了用几句简单的话来把用法说明白。

呵呵 

其实在KEIL网站上下的 NXP的Demo, 呵呵 写法完全不一样,就很简单的相关部分。


zhongwei 发表于 2008-1-6 10:26 | 显示全部楼层

看了一下资料,应该挂不掉吧!

应该执行一次上电复位的条件.
TRUE_ARM 发表于 2008-1-6 11:25 | 显示全部楼层

这个问题前面已经讨论过了

本人刚开始就遭遇过这样的苦恼,也在这里求助,并得到解决!
hotpower 发表于 2008-1-6 11:30 | 显示全部楼层

JTAG做GPIO在任何ARM都会遇到同样的问题

肯定要有什么功能开关之类的机关.否则运行中要误入DEBUG状态的.

ISP也存在此问题,所以它有RST和BOOT0/1的硬件保护,避免误入.

总之苦恼过的人之后永远是"微笑"...
 楼主| McuPlayer 发表于 2008-1-6 11:44 | 显示全部楼层

差点当先烈换来的裤子

跟解放军似的,挂了一条腿,没有功劳也给个二等功
hotpower 发表于 2008-1-6 11:48 | 显示全部楼层

哈哈~~~向"革命烈士"敬礼~~~

qihao 发表于 2008-1-6 14:31 | 显示全部楼层

革命烈士可千万别埋洛阳哈!

不过老兄也真是有点大意了,还是要尽量别当烈士,难保不肖子孙给你个保护性修缮哈!
 楼主| McuPlayer 发表于 2008-1-6 14:52 | 显示全部楼层

怎么在我的裤子上发广告

在ST的地盘上得一裤子容易吗?还被人贴牛皮癣
而且是KEIL淘汰的ULINK1,好歹也得个ULIN2才有面子啊
zusen 发表于 2008-1-6 15:22 | 显示全部楼层

哈哈,那时玩LM101时,也搞毁了两只

用JTAG做IO口
香水城 发表于 2008-1-6 17:07 | 显示全部楼层

碰到楼主这种问题,还有另外两种处理办法

如果把JTAG引脚映射到GPIO而不能使用JTAG的调试功能后,通常有两种方法可以恢复:

1)启动芯片内置的Bootloader或俗称的ISP功能,把Flash中的内容擦除即可恢复芯片的JTAG调试功能。

2)把BOOT0和BOOT1引脚配置成从RAM启动,然后芯片可以在RAM中进行JTAG调试,这时在RAM中运行一个擦除Flash的程序,亦可恢复芯片的JTAG调试功能。不过使用这种办法,最好是事先准备好相应的擦除Flash的程序。

上述第1种方法比较简单。


为防止发生楼主这种情况,建议可以如同ST提供的这个例子程序那样,单独设立一种机制能够打开JTAG引脚的功能。

还有一种比较好的方法是,在复位后程序刚刚运行起来的时候,不要马上就把JTAG引脚映射到GPIO,而是等待一个用户的输入事件(如按下了一个按键),然后再进行映射操作;这样可以很方便的进行JTAG调试和实时调试之间的切换。
ijk 发表于 2008-1-6 21:40 | 显示全部楼层

其实想从这种状态恢复过来很简单

1)把BOOT0和BOOT1引脚配置成从RAM启动
2)通过JTAG口,把程序下载到FLASH中,覆盖掉原来的“问题”程序
3)把BOOT0和BOOT1引脚配置成从FLASH启动(该步骤为可选)
OK
hotpower 发表于 2008-1-6 21:50 | 显示全部楼层

本来认为BOOT1没什么用(不用RAM启动),现在要想想了~~~

walnutcy 发表于 2008-1-6 22:08 | 显示全部楼层

呵呵,是JTAG口当普通IO的问题,,其它一些IC也有的

香水城 发表于 2008-1-6 23:07 | 显示全部楼层

14楼这招更高!!

yijianglee 发表于 2008-1-6 23:18 | 显示全部楼层

学习了^_^

tsb0574 发表于 2008-1-10 21:36 | 显示全部楼层

学习……

greatbin 发表于 2008-1-11 09:29 | 显示全部楼层

这个铁自比较重要,计下了

ijk 发表于 2008-1-11 09:47 | 显示全部楼层

楼上说得好

但重要的贴为什么不能加入收藏夹呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

338

主题

7307

帖子

26

粉丝
快速回复 在线客服 返回列表 返回顶部