配置M5113波特率實(shí)現(xiàn)高速數(shù)據(jù)傳送.pdf
實(shí)現(xiàn)230400/460800bps波特率高速數(shù)據(jù)傳送
M6117系列板卡上使用的多路I/O芯片是ALi M5113。它支持快速通用異步收發(fā),最高波特率可達(dá)460800 bps。下面是實(shí)現(xiàn)這種功能的DOS C語(yǔ)言范例代碼:
/* DM&P/ICOP M6117D 系列板卡上ALi M5113范例代碼。*/
#
include <conio.h>
void M5113_Write(unsigned char cIdx, unsigned char cData)
{
outportb(0x3f1, 0x51);
outportb(0x3f1, 0x29);
inportb(0x3f1);
outportb(0x3f1, cIdx);
outportb(0x3f1, cData);
}
unsigned char M5113_Read(unsigned char cIdx)
{
outportb(0x3f1, 0x51);
outportb(0x3f1, 0x29);
inportb(0x3f1);
outportb(0x3f1, cIdx);
return inportb(0x3f1);
}
void main()
{
unsigned char cTemp;
/* 上面提到的ALi M5113寄存器數(shù)據(jù)的相關(guān)資料在http://www.dmp.com.tw/tech/dmp-hw/misc/m5113.pdf CR8和CR9的16,17頁(yè)上。*/
/* Enable UART1 hi-speed baud rate */
cTemp = M5113_Read(0x88);
/* 設(shè)置通用異步收發(fā)器1 達(dá)到最大波特率。*/
cTemp |= 0x20; /* set CR8 bit5 to 1 */ /* 設(shè)置CR8 bit5到1 */
M5113_Write(0x88, cTemp);
/* 設(shè)置通用異步收發(fā)器2 達(dá)到最大波特率 */
cTemp = M5113_Read(0x99);
cTemp |= 0x20; /* set CR9 bit5 to 1 */ /* 設(shè)置 CR9 bit5到1 */
M5113_Write(0x99, cTemp);
}
/* 參考表格 5-5, 用戶(hù)在初始化UART的過(guò)程中:
使用32770 作為除法因子達(dá)到230400 的波特率。
使用30769 作為除法因子達(dá)到460800 的波特率。
*/
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。
你可能感興趣的文章