你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32与传感器进行485通信,传感器接收不到数据

[复制链接]
yizhouaa 提问时间:2019-3-28 14:54 /
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"         
  7. #include "rs485.h"
  8. u8 S_485_Send1[] = {0xA5,0x09,0xAE};
  9. u8 num=0;                                         
  10. int main(void)
  11. {         
  12.         u8 key;
  13.         u8 i=0,t=0;
  14.         u8 rs485buf[9];          
  15.         delay_init();                      
  16.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  17.         uart_init(115200);                
  18.         LED_Init();                                 
  19. //        LCD_Init();                                          
  20.         KEY_Init();                                                  
  21.         RS485_Init(9600);                                                                  
  22.         while(1)
  23.         {
  24.                 key=KEY_Scan(0);
  25.                 if(key==KEY0_PRES)
  26.                 {                       
  27.                   RS485_Send_Data(S_485_Send1,3);                                                                                          
  28.                 }                 
  29.                 RS485_Receive_Data(rs485buf,&key);
  30.                 if(key)
  31.                 {
  32.                         if(key>9)key=9;
  33. //                        printf("%s",rs485buf);
  34.                         for(i=0;i<9;i++)
  35.                         {
  36.                                 printf("%d",rs485buf[i]);                       
  37.                         }
  38.                 }
  39.                 t++;
  40.                 delay_ms(10);
  41.                 if(t==20)
  42.                 {
  43.                         LED0=!LED0;       
  44.                         t=0;
  45.                 }                  
  46.         }
  47. }


复制代码
这是主函数,S_485_Send1[]是我传感器的查询命令0xA5 0x09 0xAE,传感器接受到这个命令就会返回一次光照数据,我发送了但是传感器没有返回数据
收藏 评论23 发布时间:2019-3-28 14:54

举报

23个回答
3111272 回答时间:2019-4-1 09:48:58
传感器接收不到命令,首先得看看是不是成熟产品,我在调试成熟产品的时候会考虑把485的A B线反一下。
如果不是成熟产品,就要使用串口调试工具。
1,MCU发出的指令不正确,
2,传感器接收不到指令
解决办法:发出指令不正确就看自己的程序实现了,传感器接收不到指令,就要看看传感器是不是坏的了。
其他问题就自己在分析分析

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

衔胆栖冰 回答时间:2019-3-28 21:37:34
什么传感器直接接485
yizhouaa 回答时间:2019-4-1 09:36:54
衔胆栖冰 发表于 2019-3-28 21:37
什么传感器直接接485

GY-485-44009光照传感器
hujjj 回答时间:2019-4-1 09:46:57
STM32能直接进行RS485通讯吗?还要通过相应的通讯模块吧。

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

wenyangzeng 回答时间:2019-4-1 10:08:35
应该需要通过485接口芯片与传感器连接才是呀。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

weiwei4 回答时间:2019-4-1 11:02:36
能接收,说明接收电路是对的
问题是发送的数据那边收不到,感觉可以是以下几点问题:
1、485电路是自动收发电路么? 如不是,那么要程序控制相应引脚来切换485接收和发送,这个没做好数据是发不出去的
2、如果是自动收发电路,是不是楼主的自动收发电路有问题?
3、先测试下单片机发送引脚是否正常发送?方向控制引脚是否正常控制?

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

yizhouaa 回答时间:2019-4-1 11:02:41
hujjj 发表于 2019-4-1 09:46
STM32能直接进行RS485通讯吗?还要通过相应的通讯模块吧。

我板子上接了485转换模块的
yizhouaa 回答时间:2019-4-1 11:03:05
3111272 发表于 2019-4-1 09:48
传感器接收不到命令,首先得看看是不是成熟产品,我在调试成熟产品的时候会考虑把485的A B线反一下。
如果 ...

好的,谢谢啦
yizhouaa 回答时间:2019-4-1 11:04:37
刚刚接触stm32,所以有很多问题不懂,就来论坛问问,谢谢啦
123下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版