|
/**************************************************
功能:串口初始化子程序
说明:波特率19.2K,使用内部波特率发生器
**************************************************/
void uart_init(void)
{
ES0 = 0; // 关UART0中断
REN0 = 1; // 允许接收
SM0 = 0; // 串口模式1,8bit可变波特率
SM1 = 1;
PCON |= 0x80; // SMOD = 1(倍率)
WDCON |= 0x80; // 选择内部波特率发生器
S0CON = 0x50; //方式1,SM0=0,SM1=1,SM2=0,REN=1,TB8=RB8=0
S0RELL = 0xe6; // 波特率19.2K(十进制998=十六进制0x03e6)
S0RELH = 0x03;
TI0 = 0; // 清发送完成标志
RI0 = 0; // 清发送完成标志
S0BUF=0x99; // 送初值
ES0 = 1; // 关UART0中断
}
这是串口初始化的程序。但是一打开串口中断,最后一个语句
ES0 = 1; // 关UART0中断
无线传输数据就收不到数据。请教大家。
是不是不能使用串口内部波特率发生器?
按道理上说,串口通讯跟无线数据传输是不相关的。
还有一个比较变态的问题
S0BUF=0x99; // 送初值
串口缓冲区,初始化的时候,必须要赋一个初值。
请教!!! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|