GE32E103 USART0 插入 USB转杜邦线 就会异常

[复制链接]
206|7
 楼主 | 2019-5-16 16:36 | 显示全部楼层 |阅读模式
我把USART0的 TX  RX引脚通过1个1K限流保护电阻  接到USB-AF插件的D+ D-,原来初始化如下
gpio_init(GPIOA, GPIO_MODE_AF_PP,               GPIO_OSPEED_50MHZ, GPIO_PIN_9);
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING,    GPIO_OSPEED_50MHZ, GPIO_PIN_10);
USB插件悬空的时候,串口不会无缘无故进入接收中断。
当我将USB转4P杜邦线插头插入母座,就发现会USART0会不断进入中断,并把接收字符弄为0。
如果USB转4P杜邦线 外接固定电平(比如普通的USB转TTL工具的RX TX),则不会发生上述情况。
一直用这种初始化好多年,现在发现还是有不妥的地方,比如串口连接的对象不在咋办? 细节还是决定成败。
改为:gpio_init(GPIOA, GPIO_MODE_AF_PP,       GPIO_OSPEED_50MHZ, GPIO_PIN_9);
    gpio_init(GPIOA, GPIO_MODE_IPU,         GPIO_OSPEED_50MHZ, GPIO_PIN_10);     确定即便没有外部设备连接下,也可以内部弱拉高,就可以避免该问题。

使用特权

评论回复
| 2019-5-23 08:57 | 显示全部楼层
会不会是产生了干扰啊

使用特权

评论回复
| 2019-5-23 09:29 | 显示全部楼层
用屏蔽线试试看

使用特权

评论回复
 楼主 | 2019-5-23 13:18 | 显示全部楼层
aoyi 发表于 2019-5-23 08:57
会不会是产生了干扰啊

空的USB转杜邦线 淘宝5元一条的那种 不带任何芯片。 仅仅是把USB的 5V D+ D- GND延伸到外面4个杜邦插头而已、我测试过好几条,都这样,我还以为是我接上去后 短路 把RX一直拉低了 实际看电平是低了,但是这个硬件线完好没短路,后面接了USB转TTL工具通信正常,要是MCU的RX被硬件原因强制拉低  后面也就不可能正常了。    PS: 所以我把串口接收引脚 设置为 内部电阻 弱上拉  IPU   就解决了。

使用特权

评论回复
| 2019-5-24 08:16 | 显示全部楼层
lvben5d 发表于 2019-5-23 13:18
空的USB转杜邦线 淘宝5元一条的那种 不带任何芯片。 仅仅是把USB的 5V D+ D- GND延伸到外面4个杜邦插头而 ...

哦哦 恭喜楼主解决问题  顺便帮我解惑

使用特权

评论回复
 楼主 | 2019-5-24 13:26 | 显示全部楼层
aoyi 发表于 2019-5-24 08:16
哦哦 恭喜楼主解决问题  顺便帮我解惑

请问你的是啥应用 场景? 好奇  可以发帖大家一起分享下, 我们估计大多数应用都不是热插TTL的,基本都是已经跟设备对接好了上电的,我只是刚好遇到我的TTL是热插的。 加了2个1K限流电阻保护。

使用特权

评论回复
| 2019-5-27 09:08 | 显示全部楼层
lvben5d 发表于 2019-5-24 13:26
请问你的是啥应用 场景? 好奇  可以发帖大家一起分享下, 我们估计大多数应用都不是热插TTL的,基本都是 ...

那么请教一个问题 怎么判定是不是热插的呢

使用特权

评论回复
 楼主 | 2019-5-27 16:19 | 显示全部楼层
本帖最后由 lvben5d 于 2019-6-25 13:55 编辑
aoyi 发表于 2019-5-27 09:08
那么请教一个问题 怎么判定是不是热插的呢

百度 热插,其实就是带电插入。 USB大部分都是热插应用哈。英文为 hot plug .   TTL本身没说支持热插,因为插入的时候,不知道入了,只有收到包才知道,而USB 有个ID引脚可以告知主机,有东西插入了,所以是真正意义有热插的能力。且IO口不会坏。 其实USB公插头片簧结构,你会看到5V电源在插入的时候先于信号线D+ D-接触铜片。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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