我想使用一个单线协议的传感器,问题是使用这种协议的哪种方式是优化和更合理的?用usart还是用bit banging?
如果它是重要的,我使用am2305和stm32fxx微控制器。
我更喜欢使用USART+DMA与一个缓冲区进行发送和接收。我认为这个选择取决于你的技能和项目的要求。
有很多实现单线协议的方法。
- 退出中断+定时器基模式
- 定时器输入捕获+ dma
- usart中断
- usart (err只中断)+ dma
它们都有各自的优点和缺点:
- 繁忙或空闲引脚
- 繁忙或空闲的外围项(tim, usart)
- 繁忙或空闲dma通道
- 程序中中断频率的高低
- 实现起来容易还是困难
我有不同的项目,其中工作的第一个和最后一个方法上面列出。
你必须知道哪种方法更适合你和你的项目