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

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

查看全部评分

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

评分

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

查看全部评分

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

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

评分

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

查看全部评分

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

评分

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

查看全部评分

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,所以有很多问题不懂,就来论坛问问,谢谢啦
yizhouaa 回答时间:2019-4-1 11:07:00
weiwei4 发表于 2019-4-1 11:02
能接收,说明接收电路是对的
问题是发送的数据那边收不到,感觉可以是以下几点问题:
1、485电路是自动收发 ...

好的,谢谢啦,我再去检查检查程序
五哥1 回答时间:2019-4-1 11:08:19
接不到信号,可能性很多,硬件故障,程序问题都可能,你的先上串口检测下,排除程序问题。

评分

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

查看全部评分

yizhouaa 回答时间:2019-4-1 11:14:50
五哥1 发表于 2019-4-1 11:08
接不到信号,可能性很多,硬件故障,程序问题都可能,你的先上串口检测下,排除程序问题。 ...

要的,谢谢啦,刚学stm32现在还没的啥子头绪,所以就想从实现一些小模块来熟悉stm32的板子
sylar.z 回答时间:2019-4-1 13:21:21
1.用串口助手通过U转串口+232转485对板子和传感器模块分别测试,先确认是那个部分出现了问题。
2.确保两边的参数一致。

评分

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

查看全部评分

网络孤客 回答时间:2019-4-1 13:23:50
本帖最后由 ldptest 于 2019-4-1 13:25 编辑

模块有个使能脚,是否连接正确,需要使用1个IO口控制收发

评分

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

查看全部评分

12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版