OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2895|回复: 3

485通讯问题求请教

[复制链接]

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-9-20
在线时间
30 小时
发表于 2016-5-24 17:02:48 | 显示全部楼层 |阅读模式
int main(void)
{  
u8 key;
u8 i=0,t=0;
u8 cnt=0;
u8 rs485buf[5];
delay_init();       //延时函数初始化   
NVIC_Configuration();   //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600);   //串口初始化为9600
  LED_Init();        //LED端口初始化
LCD_Init();        //LCD初始化
KEY_Init();      //KEY初始化
RS485_Init(9600); //初始化RS485
  POINT_COLOR=RED;//设置字体为红色
LCD_ShowString(60,50,200,16,16,"WarShip STM32");
LCD_ShowString(60,70,200,16,16,"RS485 TEST");
LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(60,110,200,16,16,"2012/9/9");
LCD_ShowString(60,130,200,16,16,"KEY0:Send"); //显示提示信息

  POINT_COLOR=BLUE;//设置字体为蓝色   
LCD_ShowString(60,150,200,16,16,"Count:");   //显示当前计数值
LCD_ShowString(60,170,200,16,16,"Send Data:");  //提示发送的数据
LCD_ShowString(60,210,200,16,16,"Receive Data:"); //提示接收到的数据  
              while(1)
{
  int test[3][9]={01,01,00,00,00,00,01,0Xf4,0Xf7,01,02,00,00,00,00,01,0Xf4,0Xf8,01,03,00,00,00,00,00,00,04};
  key=KEY_Scan(0);
  if(key==KEY_RIGHT)//KEY0按下,发送一次数据
  {
   for(i=0;i<9;i++)
   {
    rs485buf=test[cnt];//填充发送缓冲区
   // LCD_ShowxNum(60+i*32,190,rs485buf,3,16,0X80); //显示数据
    }
   RS485_Send_Data(rs485buf,9);//发送5个字节            
  }   
  RS485_Receive_Data(rs485buf,&key);
  /*if(key)//接收到有数据
  {
   if(key>9)key=9;//最大是9个数据.
    for(i=0;i<key;i++)LCD_ShowxNum(60+i*32,230,rs485buf,3,16,0X80); //显示数据
   }   */
  t++;
  delay_ms(10);
  if(t==20)
  {
   LED0=!LED0;//提示系统正在运行
   t=0;
   cnt++;
  // LCD_ShowxNum(60+48,150,cnt,3,16,0X80); //显示数据
    }     
}
}   

这是我根据485实验例子写的程序,我想发01,01,00,00,00,00,01,0Xf4,0Xf7,和01,02,00,00,00,00,01,0Xf4,0Xf8和01,03,00,00,00,00,00,00,04三条指令,但不知道为什么不能


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

290

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1130
金钱
1130
注册时间
2015-8-4
在线时间
107 小时
发表于 2016-5-24 17:06:40 | 显示全部楼层
代码太乱没看完,只看到485buf只有5个字节,而你的test数组单个就是9个字节,怎么放的下?
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-9-20
在线时间
30 小时
 楼主| 发表于 2016-5-24 17:11:00 | 显示全部楼层
那我想发01,01,00,00,00,00,01,0Xf4,0Xf7,和01,02,00,00,00,00,01,0Xf4,0Xf8和01,03,00,00,00,00,00,00,04三条指令的话怎么改
回复 支持 反对

使用道具 举报

31

主题

147

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2182
金钱
2182
注册时间
2014-6-30
在线时间
341 小时
发表于 2016-5-24 21:09:30 | 显示全部楼层
看不到发送接收函数里面咋回事
在电路上充实自己
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 03:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表