我必须将热敏打印机与基于嵌入式Linux的AM1808接口。
我已连接只有单向通信的打印机,这意味着我只需要发送数据而无需从打印机接收任何内容进行验证。
我有自己的打印机,需要双向通信,我必须以相同的方式从打印机接收数据,以确认是否已成功打印数据。
是的,我的打印机在打印大约4000字节时挂起,因此我必须重新初始化它以清空其内置缓冲区。
现在我的问题是我配置了一个UART端口。我必须启用或禁用传输或接收?意味着它可以同时启用传输和接收?我怎么能这样帮助我。
我必须让打印机中断。 ???? 谢谢。
答案 0 :(得分:0)
我曾经使用的所有UART都有独立的tx和rx硬件。假设没有启用硬件流量控制,那么如果你可以正常,你应该能够rx。
我必须让打印机中断吗? - 好吧,在抢占式多任务器上,通常使用中断驱动程序(或者某些变体,例如完成中断的DMA),是的。
答案 1 :(得分:0)
我已连接只有单向通信的打印机,这意味着我只需要发送数据而无需从打印机接收任何内容进行验证。
“......不需要收到任何东西......”可能是一个错误的假设。
您的打印机应该有一些流量控制以防止数据溢出。角色展示&行式打印机通常可以比显示或打印数据更快地接收数据。这些设备使用简单的通信协议,该协议不具有重传丢失数据的任何功能。因此,当设备的接收缓冲区已满时,有流量控制通知主机(暂时)停止发送数据。
EIA / RS-232串行接口可以使用硬件(通常使用CTS控制线)或软件(嵌入数据,通常使用XON和XOF字符)进行单端流量控制。一旦配置了串行端口,Linux串行端口驱动程序和行规程就会使流控制对应用程序不可见。
是的,我的打印机在打印大约4000字节时挂起,因此我必须重新初始化它以清空其内置缓冲区。
这似乎证明您忽略了打印机提供的任何流量控制,并导致数据溢出。
现在我的问题是我配置了一个UART端口。我必须启用或禁用传输或接收吗?
这不是一个突出的问题。您需要确定打印机需要什么样的流量控制,然后实现(即配置)它。