Linux PC和51系列單片機串行通信的設計
初始化函數如下:
初始化以后就開始發送和接收數據,先將一個字符串發送給單片機,單片機接收到數據后,將數據返回給上位機。但需要注意的是,由于上位機速度比單片機快得多,一次不能發送過多的數據,否則極有可能使發送緩沖區溢出而丟失數據,發送過后,還需等待一段時間,使單片機將數據完全發送到上位機后,再進行讀取。
2.2 直接讀寫串口硬件端口的方法
在使用這個方法的時候,必須對串口通信的硬件原理有一些了解。PC機的串口是由通用異步收發器8250UART(或16550)為核心構成的,寄存器基地址分別是0x3f8(COM1)和0x2f8(COM2),還有其他的一些用于控制的寄存器。有很多寄存器是與Modem相關的,而在使用三線制進行通信時用不到,只用關心與通信相關的寄存器,比起使用為通用功能編寫的串口設備驅動程序來,直接讀寫相關寄存器效率更高。
評論