while(1)
{
key=KEY_Scan(0);
if(key==KEY0_PRES)//KEY0按下,发送一次数据
{
for(i=0;i<5;i++)
{
rs485buf=cnt+i;//填充发送缓冲区
LCD_ShowxNum(30+i*32,190,rs485buf,3,16,0X80); //显示数据
}
RS485_Send_Data(rs485buf,5);//发送5个字节
}
RS485_Receive_Data(rs485buf,&key);
if(key)//接收到有数据
{
if(key>5)key=5;//最大是5个数据.
for(i=0;i<key;i++)LCD_ShowxNum(30+i*32,230,rs485buf,3,16,0X80); //显示数据
}
t++;
delay_ms(10);
if(t==20)
{
LED0=!LED0;//提示系统正在运行
t=0;
cnt++;
LCD_ShowxNum(30+48,150,cnt,3,16,0X80); //显示数据
}
}
}
1.KEY_Scan(0)只能返回1或0,为什么要把它赋给key
key==KEY0_PRES赋给key应该是判断是否按下吧
2.rs485buf=cnt+i;
LCD_ShowxNum(30+i*32,190,rs485buf,3,16,0X80);
因为cnt为0,那显示的数据不就是0,1,2,3,4了吗
3. RS485_Receive_Data(rs485buf,&key);为啥取的是key的地址,不是存有数据的rs485buf
4. t++;这个t是干啥的
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
在A盘--4,程序源码--1,标准例程-寄存器版本.rar
这个压缩包里的 “实验24 485实验”
一周热门 更多>