Linux PC和51系列单片机串行通信的设计
初始化函数如下:
初始化以后就开始发送和接收数据,先将一个字符串发送给单片机,单片机接收到数据后,将数据返回给上位机。但需要注意的是,由于上位机速度比单片机快得多,一次不能发送过多的数据,否则极有可能使发送缓冲区溢出而丢失数据,发送过后,还需等待一段时间,使单片机将数据完全发送到上位机后,再进行读取。
2.2 直接读写串口硬件端口的方法
在使用这个方法的时候,必须对串口通信的硬件原理有一些了解。PC机的串口是由通用异步收发器8250UART(或16550)为核心构成的,寄存器基地址分别是0x3f8(COM1)和0x2f8(COM2),还有其他的一些用于控制的寄存器。有很多寄存器是与Modem相关的,而在使用三线制进行通信时用不到,只用关心与通信相关的寄存器,比起使用为通用功能编写的串口设备驱动程序来,直接读写相关寄存器效率更高。
评论