stm32与传感器进行485通信,传感器接收不到数据
#include "led.h"#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "rs485.h"
u8 S_485_Send1[] = {0xA5,0x09,0xAE};
u8 num=0;
int main(void)
{
u8 key;
u8 i=0,t=0;
u8 rs485buf;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
// LCD_Init();
KEY_Init();
RS485_Init(9600);
while(1)
{
key=KEY_Scan(0);
if(key==KEY0_PRES)
{
RS485_Send_Data(S_485_Send1,3);
}
RS485_Receive_Data(rs485buf,&key);
if(key)
{
if(key>9)key=9;
// printf("%s",rs485buf);
for(i=0;i<9;i++)
{
printf("%d",rs485buf);
}
}
t++;
delay_ms(10);
if(t==20)
{
LED0=!LED0;
t=0;
}
}
}
这是主函数,S_485_Send1[]是我传感器的查询命令0xA5 0x09 0xAE,传感器接受到这个命令就会返回一次光照数据,我发送了但是传感器没有返回数据
传感器接收不到命令,首先得看看是不是成熟产品,我在调试成熟产品的时候会考虑把485的A B线反一下。
如果不是成熟产品,就要使用串口调试工具。
1,MCU发出的指令不正确,
2,传感器接收不到指令
解决办法:发出指令不正确就看自己的程序实现了,传感器接收不到指令,就要看看传感器是不是坏的了。
其他问题就自己在分析分析 什么传感器直接接485 衔胆栖冰 发表于 2019-3-28 21:37
什么传感器直接接485
GY-485-44009光照传感器 STM32能直接进行RS485通讯吗?还要通过相应的通讯模块吧。 应该需要通过485接口芯片与传感器连接才是呀。 能接收,说明接收电路是对的
问题是发送的数据那边收不到,感觉可以是以下几点问题:
1、485电路是自动收发电路么? 如不是,那么要程序控制相应引脚来切换485接收和发送,这个没做好数据是发不出去的
2、如果是自动收发电路,是不是楼主的自动收发电路有问题?
3、先测试下单片机发送引脚是否正常发送?方向控制引脚是否正常控制? hujjj 发表于 2019-4-1 09:46
STM32能直接进行RS485通讯吗?还要通过相应的通讯模块吧。
我板子上接了485转换模块的 3111272 发表于 2019-4-1 09:48
传感器接收不到命令,首先得看看是不是成熟产品,我在调试成熟产品的时候会考虑把485的A B线反一下。
如果 ...
好的,谢谢啦 刚刚接触stm32,所以有很多问题不懂,就来论坛问问,谢谢啦