/* 参数过滤 */ if ((baud ==0 ) || (baud > 115200)) return (0); if ((set.datab <5) || (set.datab > 8)) return (0); if ((set.stopb == 0) || (set.stopb > 2)) return (0); if (set.parity > 4) return (0); /* 设置串口波特率 */ U0LCR = 0x80; // DLAB = 1 bak = (Fpclk >> 4) / baud; U0DLM = bak >> 8; U0DLL = bak & 0xFF; /* 设置串口模式 */ bak = set.datab - 5; // 设置字长 if (set.stopb == 2) bak |= 0x04; // 判断是否为2位停止位 if (set.parity != 0) { set.parity = set.parity - 1; bak |= 0x08; } bak |= set.parity << 4; // 设置奇偶校验
U0LCR = bak;
1.bak = set.datab - 5; // 设置字长 什么是字长,是要发送数据的长度吗???还是什么???
|