打印
[AVR单片机]

mega88串口通信故障

[复制链接]
1567|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dingsujie|  楼主 | 2014-5-4 10:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用11.0592MHZ 外部晶振;波特率设定值为115200;请大侠帮忙看看

/******************************************************************************
函数功能:USART初始化
入口参数:波特率115200
******************************************************************************/
void UART_0_Init(void)
{
UCSR0B=0x00;
/*根据不同的波特率设置*/

//波特率加倍
   UCSR0A=(1<<U2X0);
   //设置UCSRC,数据位为8位:URSEL置1,
   UCSR0C=(0<<UMSEL01)+(1<<UMSEL00)+(1<<UCSZ01)+(1<<UCSZ00);
   //设置UBRRL
   UBRR0L=0x0B;//11;115200波特率
   //设置UBRRH
   UBRR0H=0x00;
//允许接收中断,允许接收,允许发送
UCSR0B=(1<<RXCIE0)+(1<<RXEN0)+(1<<TXEN0);
}
/******************************************************************************
函数功能:通过USART发送一个字节数据
入口参数:字节数据
******************************************************************************/
void UART_Send_Char(unsigned char char_data)
{
while(!(UCSR0A&(1<<UDRE0)));
UDR0=char_data;
}

相关帖子

沙发
dingsujie|  楼主 | 2014-5-4 10:41 | 只看该作者
发送不了程序

使用特权

评论回复
板凳
huangxz| | 2014-5-4 17:28 | 只看该作者
UBRR0L=0x0B?

>>> 11059200/(8*115200.0)
12.0

使用特权

评论回复
地板
airwill| | 2014-5-4 19:06 | 只看该作者
11059200/(8*115200.0) = 12, 所以设置成 11 加 U2X0 是正确的。
不知道楼主遇到了什么问题?

使用特权

评论回复
5
dingsujie|  楼主 | 2014-5-5 08:00 | 只看该作者
/******************************************************************************
函数功能:通过USART校验信息
入口参数:信息数据
******************************************************************************/
void UART_Send_check( unsigned char *Data[])
{
  unsigned char  i=0;
  for(i=0;i<6;i++)
    {UART_Send_Char(Data[i]);}

}
!E D:\丁苏杰\通力\楼层按钮触摸屏\14层站程序\14floors_button.c(183): type error in argument 1 to `UART_Send_check'; found `pointer to const unsigned char' expected `pointer to pointer to const unsigned char'

使用特权

评论回复
6
dingsujie|  楼主 | 2014-5-5 08:00 | 只看该作者
这是怎么回事,我之前用IAR没有报错啊

使用特权

评论回复
7
dingsujie|  楼主 | 2014-5-13 16:13 | 只看该作者
else if(((floor_data2==0xaa)&&(floor_data1==0x01))&&(floor_data3==0x40))//10楼按键按下
   {   HC595_Send(SW_LED[9*2],SW_LED[9*2+1]);

  这个往下了;单片机不能点灯;去掉一个“&&”就可以;求高手帮忙解答

使用特权

评论回复
8
reuben123| | 2014-5-16 09:05 | 只看该作者
dingsujie 发表于 2014-5-5 08:00
/******************************************************************************
函数功能:通过USART ...

这个数组Data[]已经被你写保护了,不能修改的。你可以重新定义其他数组再试。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:电梯控制。。。。。。。。。。。。。。。。。。。

21

主题

523

帖子

4

粉丝