我需要在stm32微控制器上创建一个虚拟的通用异步收发器端口。已给出引脚,并可将其更改为定时器输入通道。接收信号将在电流和电压中进行调制,我需要同时检测这两种信号。这两个引脚不能分配给uart。有没有人有教程之类的,可以把我引向正确的方向?我刚开始编程微控制器,我还在忙于处理所有的定时器、中断和细节方面的东西。
发布于 2017-03-29 17:09:18
如果我们谈论的是小波特率(9600),那么你可以用timer和EXTI来实现这一点。在EXTI上,将引脚设置为上升沿和下降沿,并在每个IRQ之间检查计时器值。
如果值大于开始和停止条件时间,则失败,否则您必须检查EXTi花费的时间,并计算您收到的是10101010还是11001100或任何其他组合。
对于TX模式,使用定时器在UART输出数据的位片上进行精确中断,并为数据输出逐位创建状态机。
另一种选择是使用SPI作为虚拟UART。
https://stackoverflow.com/questions/43088209
复制相似问题