哪位大神帮我看一下下面这段c语言编程,详细解释一下谢谢! 50

voidYI_UART0_SendString(unsignedchar*str,intnum){inti;for(i=0;i<num;i++){while(!(UCSR... void YI_UART0_SendString(unsigned char *str , int num)
{
int i;
for(i=0;i<num;i++)
{
while(!(UCSR0A & 0X20));
UDR0=*str;
str++;
}
}
最好能详细解释下
while(!(UCSR0A & 0X20));
UDR0=*str;
str++;
谢谢
展开
 我来答
键盘未找到
推荐于2017-07-25 · TA获得超过328个赞
知道小有建树答主
回答量:403
采纳率:100%
帮助的人:261万
展开全部

你给的这段程序有个错: UCSR0A 和 UDR0 应该是一个变量,也就是后者少写了一个A,或者前者多写了一个A

while(!(UCSR0A & 0X20))//; // 注意这里多了一个分号,要删掉,否则就可能死循环
{
      UCSR0A =  (*str); 
      str++;
} // 要加上花括号,否则,str指针不变,循环没有意义


这段代码的意思是找到str所指向的字符串中的空格开始的地方:

0x20即32,是空格' ' 的ASC码。每次循环UCSR0A(一个char型变量)取str的一个字符,如果

!(UCSR0A & 0X20) (即UCSR0A != 32 )则取下一个字符,当UCSR0A 是空格时,跳出循环

百度网友9564153
2015-08-16 · 超过14用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:30.4万
展开全部
指针str,整型num
定义i,
for循环
当处于UCSR0A和0x20这个地址时
吧str指向的内容付给UDR0
str地址加1
也就是UCSR0A=0x20为止这是ascii码自己去看ASCII码,
这好像是个接口
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式