我在尝试捕捉一个信号,就像UART通讯一样。
这一特定信号由以下几个部分组成:
1开始位(低)
16个数据位
1止位(高)
通过测试,我发现信号大约是8-9μs/ bit.这使我相信波特率在115.2kbps左右。
我的第一个想法是尝试一种“手动”方法,并编写了一个小型C程序。虽然我不能在适当的时间采集信号。
从现在开始,我决定寻找能够完成这项工作的库。我确实尝试过boost中的"termios“和"asio::serial_port”,但它们似乎无法接收16位字符。
我是否天真地试图配置一个16位接收器?"16位UART“有意义吗?
谢谢!
-nls
发布于 2018-01-25 10:59:41
UART支持16位数据配置的想法没有本质上的错误,但我不知道有什么问题。8或9通常是限制。
如果您正在与只支持该配置的设备通信(这到底是一种什么样的设备?),您唯一真正的选择是位敲击,这最好由专用于此的MCU来完成。在多任务操作系统上,您不会在用户空间中获得微秒精确的计时,无论您所使用的库是什么。
编辑:请注意,您可以这样做,或多或少,从一个专用的内核空间驱动程序的位敲。但这将使该系统几乎无法使用。UART之所以存在,是因为CPU有比每几微秒轮询一行更好的事情要做。
https://stackoverflow.com/questions/48440975
复制相似问题