新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux PC和51系列單片機(jī)串行通信的設(shè)計(jì)

Linux PC和51系列單片機(jī)串行通信的設(shè)計(jì)

作者: 時(shí)間:2012-03-20 來源:網(wǎng)絡(luò) 收藏

初始化函數(shù)如下:

41.gif
42.gif

初始化以后就開始發(fā)送和接收數(shù)據(jù),先將一個(gè)字符串發(fā)送給,接收到數(shù)據(jù)后,將數(shù)據(jù)返回給上位機(jī)。但需要注意的是,由于上位機(jī)速度比快得多,一次不能發(fā)送過多的數(shù)據(jù),否則極有可能使發(fā)送緩沖區(qū)溢出而丟失數(shù)據(jù),發(fā)送過后,還需等待一段時(shí)間,使單片機(jī)將數(shù)據(jù)完全發(fā)送到上位機(jī)后,再進(jìn)行讀取。

2.2 直接讀寫串口硬件端口的方法

在使用這個(gè)方法的時(shí)候,必須對串口的硬件原理有一些了解。機(jī)的串口是由通用異步收發(fā)器8250UART(或16550)為核心構(gòu)成的,寄存器基地址分別是0x3f8(COM1)和0x2f8(COM2),還有其他的一些用于控制的寄存器。有很多寄存器是與Modem相關(guān)的,而在使用三線制進(jìn)行時(shí)用不到,只用關(guān)心與相關(guān)的寄存器,比起使用為通用功能編寫的串口設(shè)備驅(qū)動(dòng)程序來,直接讀寫相關(guān)寄存器效率更高。

43.gif

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉