AVR技术论坛
直播中

moyansen

12年用户 204经验值
擅长:嵌入式技术 模拟技术 光电显示 控制/MCU
私信 关注
[AVR资料]

关于ATMega16串口通信中的问题

各位朋友好,小弟在写ATMega16单片机串口通信发送的程序时,不知道为什么无法正常通信,不知道哪里出错了,希望有朋友能够帮忙指导一下。谢谢!
以下是程序代码!
  1. #define F_CPU 4000000UL
  2. #include
  3. #include
  4. #include til/delay.h>
  5. #define uchar unsigned char
  6. #define uint unsigned int

  7. //初始化IO口
  8. void IO_init()
  9. {
  10.         DDRD=0x02;                //TxD(PD1)为输出
  11.         PORTD=0xFF;
  12. }
  13. //初始化串口
  14. void USART_init()
  15. {
  16.         UCSRA=0x00;
  17.         UCSRC|=_BV(URSEL)|_BV(UCSZ1)|_BV(UCSZ0);        //8位数据位
  18.         UCSRB|=_BV(TXEN);                                                        //使能发送
  19.         UBRRL=(F_CPU/9600/16-1)%256;
  20.         UBRRH=(F_CPU/9600/16-1)/256;
  21. }
  22. //发送一个字符
  23. void TxD_Byte(uchar c)
  24. {
  25.         while(!(UCSRA&_BV(UDRE)));
  26.         UDR=c;
  27. }
  28. //发送一串字符
  29. void TxD_String(uchar *p,uchar len)
  30. {
  31.         uchar i;
  32.         for(i=0;i
  33.         {
  34.                 TxD_Byte(*p);
  35.                 p++;
  36.         }
  37. }

  38. int main()
  39. {
  40.         IO_init();
  41.         USART_init();
  42.         while(1)
  43.         {
  44.                 TxD_String("Hello World",11);
  45.                 _delay_ms(500);
  46.         }
  47. }



回帖(1)

宋永嘉

2015-5-24 18:52:49
②业业人员和太皇太后是他人的而行业而过后热舞会因为二个人通过
举报

更多回帖

发帖
×
20
完善资料,
赚取积分