单片机发送命令过去模块始终不亮,也接受不到数据回来,不知道程序哪块有问题?
128的编程频率fps是用的16M不?
部分程序如下:
//初始化 UART 子程序
void UART_Init(void)
{ UCSR0B = 0x00; //设置波特率前关闭USART0
UCSR0A = 0x00; //正常速率,Bit1为1则倍速发送
UCSR0C = 0x06; //数据位为8位
UBRR0L = 0x10; //波特率:57600 Bps
UBRR0H = 0x00; //
UCSR0B = 0x98; //接收使能,发送使能
}
//发送八位数据
void UART_Send_Byte( uchar ucData)
{ while(!(UCSR0A&(1<<UDRE0))); //等待缓冲区为空(UDRE0=1)
UDR0 = ucData;
}
//接收八位数据
uchar UART_Receive_Byte(void)
{ while(!(UCSR0A&(1<<RXC0)));//等待缓冲区有数据(RXC0=1)
return UDR0;
}
int main()
{ PORTA=0XFF;
DDRA=0XFF; //LED IO口设为输出
PORTC=0XFF;
DDRC=0XFF; //数码管段选设为输出
PORTF|=0X0E;
DDRF |=0X0E; //LED及数码管锁存IO口设为输出
PORTF&=0xF9; //锁存数据关闭数码管
PORTD=0X07; //3按键IO口
DDRD=0Xf8; //按键接口设为输入
DDRE|=0x02; //RXD TXD
PORTE|=0x03;
UART_Init();
while(1)
{ keyboard();}
}
|