我需要在 stm32 微 Controller 上创建一个虚拟 uart 端口。引脚已给出,可以更改为定时器输入 channel 。接收信号将在电流和电压中进行调制,我需要检测两者。这两个引脚不能分配给 uart。有人有教程或其他东西可以引导我走向正确的方向吗?我刚刚开始对微 Controller 进行编程,但我仍在为所有定时器、中断和细节问题而苦苦挣扎。
最佳答案
如果我们谈论的是小波特率(9600),那么您可以使用计时器和 EXTI 来实现这一点。 在 EXTI 上将引脚设置为上升沿和下降沿,并在每个 IRQ 之间检查定时器值。
如果值大于开始和停止条件时间,则失败,否则您必须检查 EXTi 花费的时间并计算您是否收到 10101010 或 11001100 或任何其他组合。
对于 TX 模式,使用定时器在位片处精确中断 UART 输出数据,并创建状态机以逐位输出数据。
另一种选择是使用 SPI 作为虚拟 UART。
关于在stm32微 Controller 上创建虚拟UART,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088209/