我需要在stm32微控制器上创建虚拟uart端口。引脚被给定并可以更改为定时器输入通道。接收信号将在电流和电压中被调制,我需要检测两者。这两个引脚无法分配给uart。有人有教程或其他东西,可以引导我朝着正确的方向前进吗?我刚刚开始编程微控制器,我仍然在使用所有的定时器,中断和细节。
答案 0 :(得分:1)
如果我们正在谈论小的波特率(9600),那么你可以通过计时器和EXTI实现这一点。 在EXTI上设置引脚上升沿和下降沿以及每个IRQ之间检查定时器值。
如果值大于开始和停止条件时间,则表示失败,否则您必须检查EXTi花费的时间并计算您是否收到10101010或11001100或任何其他组合。
对于TX模式,使用定时器在UART输出数据的位片上进行精确中断,并逐位创建状态机进行数据输出。
另一个选择是使用SPI作为虚拟UART。