打印
[STM32F1]

STM32F103怎样实现串口电平取反

[复制链接]
327|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
取反是要做什么功能呢

使用特权

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

本版积分规则

个人签名:执着!

50

主题

354

帖子

1

粉丝