串口调试求教

没事逛荡 2011-09-14 04:46:23
代码如下,当给单片机发送120时,单片机输出字符串,可现在第一个字符不正确;而且,当给单片机发送的字符更多时,输出会受到输入影响,这是怎么回事?指针吗?

#include <iom8v.h>
#include <macros.h>
#define baud 9600
#define fosc 8000000
unsigned char num[]={"2"};

void putchar(unsigned char c)
{
while(!(UCSRA&(1<<UDRE)));
UDR=c;
}
void puts(char *s)
{
while(*s)
{
putchar(*s);
*s++;
}
}
unsigned char getchar(void)
{
while(!(UCSRA&(1<<RXC)));
return UDR;
}
void usart_init(void) //初始化;
{
UCSRB = 0x18;
UCSRA = 0x00;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = fosc/16/baud-1;
UBRRH = 0;
OSCCAL=0xBA; //时钟校正;
}
main()
{
unsigned char i,j;
usart_init();
while(1)
{
i=0;
while(1)
{
num[i]=getchar();
if(num[i]==0x30)
break; //如果是0,停止接受;
i++;
}
if((num[0]==0x31)&&(num[1]==0x32)) //如果开头是1和2,发送字符串;
{
puts("abcdefghijklmnopqrstuvwxtz");
putchar(0x0a);
putchar(0x0d); //回车;

}
}

}


...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
没事逛荡 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 woshi_ziyu 的回复:]

引用 1 楼 moyeruji 的回复:

图片怎么发。。。。

把图片上传到空间里 然后贴出连接地址
[/Quote]
好的,谢谢
woshi_ziyu 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 moyeruji 的回复:]

图片怎么发。。。。
[/Quote]
把图片上传到空间里 然后贴出连接地址
woshi_ziyu 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 moyeruji 的回复:]

呃。。。好吧,自己解决了,是内存空间没定义范围,每次都覆盖了。发帖急了点,下次要仔细想象再求教。。。
[/Quote]
++ 自己解决就好
没事逛荡 2011-09-14
  • 打赏
  • 举报
回复
呃。。。好吧,自己解决了,是内存空间没定义范围,每次都覆盖了。发帖急了点,下次要仔细想象再求教。。。
没事逛荡 2011-09-14
  • 打赏
  • 举报
回复
图片怎么发。。。。

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧