打印
[STM32F1]

STM32F103怎样实现串口电平取反

[复制链接]
1390|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SUNKE9|  楼主 | 2024-7-5 08:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32F030有个串口电平取反的函数USART_InvPinCmd(USART_TypeDef* USARTx, uint32_t USART_InvPin, FunctionalState NewState);,可以在物理层把接收的数据电平直接取反。

STM32F103里面没有这个函数,怎样实现这个功能?

使用特权

评论回复
沙发
LcwSwust| | 2024-7-5 09:25 | 只看该作者
如果单片机本身没有反相功能,那就用定时器模拟串口,能改电路就外加反相电路。

使用特权

评论回复
板凳
SUNKE9|  楼主 | 2024-7-5 09:30 | 只看该作者
LcwSwust 发表于 2024-7-5 09:25
如果单片机本身没有反相功能,那就用定时器模拟串口,能改电路就外加反相电路。
...

谢谢,用IO模拟串口就比较费劲,我希望单片机能有这个功能。不行我就在外面加三极管反向一下。

使用特权

评论回复
地板
LcwSwust| | 2024-7-5 10:01 | 只看该作者
SUNKE9 发表于 2024-7-5 09:30
谢谢,用IO模拟串口就比较费劲,我希望单片机能有这个功能。不行我就在外面加三极管反向一下。 ...

程序并不复杂,建议掌握好这个技能,等哪天串口不够用了,就能派上用场,任意IO都可以作串口用。
百度 “stm32 模拟串口”有例子。

使用特权

评论回复
5
香水城| | 2024-7-5 10:51 | 只看该作者
的确很多后期推出的STM32系列都有UART tx/rx脚输出时将电平反转的功能。

F1系列没有,你可以在发送前将数据做个反向也是选择吧。

使用特权

评论回复
6
SUNKE9|  楼主 | 2024-7-5 13:27 | 只看该作者
香水城 发表于 2024-7-5 10:51
的确很多后期推出的STM32系列都有UART tx/rx脚输出时将电平反转的功能。

F1系列没有,你可以在发送前将数 ...

谢谢版主回复,发送的设备不是单片机,是个USB转串口,所以没办法转换电平。只能在接收端想办法,我试过在接收中断里把数据取反,但是结果是错的,应该是停止位也不对。

使用特权

评论回复
7
SUNKE9|  楼主 | 2024-7-5 13:29 | 只看该作者
LcwSwust 发表于 2024-7-5 10:01
程序并不复杂,建议掌握好这个技能,等哪天串口不够用了,就能派上用场,任意IO都可以作串口用。
百度 “ ...

谢谢,我试一下,应急用一下也不错

使用特权

评论回复
8
Dick Hou| | 2024-7-5 14:52 | 只看该作者
香水城 发表于 2024-7-5 10:51
的确很多后期推出的STM32系列都有UART tx/rx脚输出时将电平反转的功能。

F1系列没有,你可以在发送前将数 ...

你是认真的吗?

数据可以取反,但起始位和结束位怎么处理?

使用特权

评论回复
9
shenxiaolin| | 2024-7-5 17:16 | 只看该作者
可以直接将数据取反之后再直接发出去就行了。软件上实现很简单的。

使用特权

评论回复
10
香水城| | 2024-7-5 18:17 | 只看该作者
Dick Hou 发表于 2024-7-5 14:52
你是认真的吗?

数据可以取反,但起始位和结束位怎么处理?

了解。
硬件上的确有这个功能及特性。可能使用起来 没那么单纯。


使用特权

评论回复
11
香水城| | 2024-7-5 18:18 | 只看该作者

使用特权

评论回复
12
trucyw| | 2024-7-6 18:06 | 只看该作者
取反是要做什么功能呢

使用特权

评论回复
13
LcwSwust| | 2024-7-8 10:09 | 只看该作者
本帖最后由 LcwSwust 于 2024-7-8 10:13 编辑
trucyw 发表于 2024-7-6 18:06
取反是要做什么功能呢

比如,取反后(注意加限流电阻与钳位二极管)可以与电脑的RS232接口通信,就省掉了MAX232芯片。
比如研究航模的SBUS协议。
猜测还可能与“低功耗”有关,比如单片机电池供电,RXD配置为上拉,当外部下拉到GND时,就会消耗电池的电,
若反个相,将RXD配置为下拉,接收数据就不会消耗电池的电了。

使用特权

评论回复
14
回复就哭哭| | 2024-7-31 23:51 | 只看该作者
这种功能可以在物理层面进行电平反转,通常涉及到硬件设计上的修改或在软件中实现信号的反转。

使用特权

评论回复
15
为你转身| | 2024-8-31 13:43 | 只看该作者
可以通过一些替代方法在物理层面上实现数据电平取反的效果。

使用特权

评论回复
16
SUNKE9|  楼主 | 2024-9-30 08:41 | 只看该作者
最终解决办法是在串口的RX前面加一级三极管倒向一下,用硬件解决。

使用特权

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

本版积分规则

个人签名:执着!

50

主题

355

帖子

1

粉丝