打印

请问:TTL电平232,如果是半双工的话,可不可以把TXD和RXD...

[复制链接]
楼主: atheling
手机看帖
扫描二维码
随时随地手机跟帖
21
chunyang| | 2016-4-1 23:07 | 只看该作者 回帖奖励 |倒序浏览
zyj9490 发表于 2016-4-1 13:58
不光是PC侧不行,MCU都不行。

两个MCU间这么玩没问题,这是弱上拉IO特有的优势,也是为什么MCU要将IO设计成弱上拉的原因。如果是增强型IO具有强上拉输出能力,必须将IO配置成弱上拉型。

使用特权

评论回复
22
chunyang| | 2016-4-1 23:09 | 只看该作者
atheling 发表于 2016-4-1 18:21
不好意思,我描述不准确,我需要的是把pc的双线变成单线,单片机那边另有电路把单线变成双线。 ...

知道你的意思,所以我才说这么做有隐患,原则上不可以。要么,你得在PC串口端附加电路,等于是改造串口,但那样就失去通用性了,工艺上也很麻烦。

使用特权

评论回复
23
zyj9490| | 2016-4-1 23:28 | 只看该作者
chunyang 发表于 2016-4-1 23:07
两个MCU间这么玩没问题,这是弱上拉IO特有的优势,也是为什么MCU要将IO设计成弱上拉的原因。如果是增强型 ...

MCU的TX脚可以是弱上拉,这个观点还是第一次看到,应是PP吧,你可以测试下。

使用特权

评论回复
24
zyj9490| | 2016-4-1 23:30 | 只看该作者
chunyang 发表于 2016-4-1 23:09
知道你的意思,所以我才说这么做有隐患,原则上不可以。要么,你得在PC串口端附加电路,等于是改造串口, ...

PC串口输出的是RS232,根本要转成TTL的,你说的不要加什么器件什么意思吗?

使用特权

评论回复
25
chunyang| | 2016-4-2 00:02 | 只看该作者
zyj9490 发表于 2016-4-1 23:28
MCU的TX脚可以是弱上拉,这个观点还是第一次看到,应是PP吧,你可以测试下。 ...

那么,去看看器件手册。

使用特权

评论回复
26
chunyang| | 2016-4-2 00:02 | 只看该作者
zyj9490 发表于 2016-4-1 23:30
PC串口输出的是RS232,根本要转成TTL的,你说的不要加什么器件什么意思吗? ...

呵呵,这话不该从你嘴里说出来吧……

使用特权

评论回复
27
zyj9490| | 2016-4-2 00:07 | 只看该作者
chunyang 发表于 2016-4-2 00:02
那么,去看看器件手册。

同理。你也去看看

使用特权

评论回复
28
zyj9490| | 2016-4-2 00:09 | 只看该作者
chunyang 发表于 2016-4-2 00:02
呵呵,这话不该从你嘴里说出来吧……

PC串口必须改造成TTL串口。目前的PC还没有标配是TTL的串口。

使用特权

评论回复
29
zyj9490| | 2016-4-2 00:20 | 只看该作者
  /**USART1 GPIO Configuration   
    PA9     ------> USART1_TX
    PA10     ------> USART1_RX
    */
    GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF4_USART1;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

使用特权

评论回复
30
zyj9490| | 2016-4-2 00:22 | 只看该作者
以上是ST 把串口引脚配置成AF_pp的例证,

使用特权

评论回复
31
chunyang| | 2016-4-2 14:43 | 只看该作者
zyj9490 发表于 2016-4-2 00:09
PC串口必须改造成TTL串口。目前的PC还没有标配是TTL的串口。

注意了,前帖中特意讲明是“两个MCU间……”

使用特权

评论回复
32
chunyang| | 2016-4-2 14:46 | 只看该作者
zyj9490 发表于 2016-4-2 00:07
同理。你也去看看

对于绝大多数MCU,IO都支持弱上拉,弱上拉是MCU IO的基本形式。也许有少量例外,但我不知道也没用过,所以保险起见才说“绝大多数”。
如果不是这样,拿出证据。

使用特权

评论回复
33
chunyang| | 2016-4-2 14:54 | 只看该作者
zyj9490 发表于 2016-4-2 00:22
以上是ST 把串口引脚配置成AF_pp的例证,

是啊,你给出的代码是配置成推挽模式,配置成弱上拉有何不可呢?凭此就成了“金科玉律”?特殊情况下,为了取得更强的驱动力,可以配置成推挽模式,但这不是标准模式。在两个MCU间单线互连,或者仅某一MCU的RX跟TX需要直接并联时,必须将IO配置成弱上拉模式,而绝大多数支持增强型IO的MCU在上电后的默认态,IO均处于弱上拉态。为什么MCU在设计时要如此?而早期非增强型IO的MCU为何都是弱上拉设计?原因无它,就是考虑通用性而已,而非技术制约问题。

使用特权

评论回复
34
atheling|  楼主 | 2016-4-2 20:34 | 只看该作者
zyj9490 发表于 2016-4-1 23:28
MCU的TX脚可以是弱上拉,这个观点还是第一次看到,应是PP吧,你可以测试下。 ...

51的四个口是不一样的

image001.png (38.1 KB )

image001.png

image016.jpg (44.94 KB )

image016.jpg

使用特权

评论回复
35
atheling|  楼主 | 2016-4-2 23:16 | 只看该作者
chunyang是不是这个意思?

forum.php.jpg (103.86 KB )

forum.html.jpg

使用特权

评论回复
36
zhaoyu2005| | 2016-4-3 13:17 | 只看该作者
需要加电路改造,摩托的车载电台该配置就是用的单线串口

使用特权

评论回复
37
chunyang| | 2016-4-3 14:15 | 只看该作者
atheling 发表于 2016-4-2 20:34
51的四个口是不一样的

对于MCS51标准系列,P0是数据总线及地址总线低8位的复用,因此与其它通用IO的设计不同,而串口必然在通用IO中,所以不必在意P0,只需考察通用IO。

使用特权

评论回复
38
chunyang| | 2016-4-3 14:17 | 只看该作者
atheling 发表于 2016-4-2 23:16
chunyang是不是这个意思?

你这个图已经是现在的增强型IO了,但依然保留了弱上拉并且是上电默认态。

使用特权

评论回复
39
zyj9490| | 2016-4-3 17:54 | 只看该作者
看看主流的MCU,不要局限在标准,古老的51,也请不要再误导后辈了,ST把TX配置成PP,不是无意的。是有意。

使用特权

评论回复
40
zyj9490| | 2016-4-3 18:05 | 只看该作者
好多MCU的GPIO的输出结构与MCU外设的输出结构是分开的,只不过在端口有一个选通器而已,要跟上现代的MCU设计才对,不要拘泥于古佬的51结构。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则