关于单片机串行口输入输出问题求大神相助

2021-01-12 22:18:27 字数 862 阅读 2213

1楼:匿名用户

你这样当然不对了。那接收是有条件的,当ri=1,才是接收到 一个字节的数据,你也没有判断ri=1,就接收了,k=sbuf;这是什么数据?不是接收的。

问一句:这几行程序是串行中断程序吗?如果是,那可以。但只能接收一个。

如果这个程序是写在主程序中的,就要加一行

while(!ri); //判断已接收到数据。

你改成接收两个的程序,这也是 中断程序才对,否则也在前面加一行while(!ri); //判断已接收到第一个数据。

k=sbuf;

ri=0;

sbuf=k;

while(!it);

ti=0;

while(!ri); //判断已接收到第二个数据j=sbuf;

ri=0;

sbuf=j;

while(!ti);

ti=0;

2楼:

做两次阿,每次的sbuf是一个数据

关于指针变量输入输出的问题求大神解答???

3楼:匿名用户

scanf()与printf()实际是两个库函数,它们在头文件里已经被写好了!scanf()需要两参数,一个为字符型的表示输入格式,另一个为指针或地址,它应该指向你所要存储变量的地址!而printf()需要一个字符型参数,表输出的数据和格式,后面要跟上输出列表,后面的列表应该为具体的变量值,而不是指针或地址!

*p值指的是p所指的具体变量!而p是指指针,也就是p所指的变量的地址!所以他们不能乱用,现在应该明白了吧!

就像一个max(int a,int b)函数 他需要两个int 参数如果你给她别的数据,那肯定就是错误的了!