- #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[9];
- 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[i]);
- }
- }
- t++;
- delay_ms(10);
- if(t==20)
- {
- LED0=!LED0;
- t=0;
- }
- }
- }
复制代码 这是主函数,S_485_Send1[]是我传感器的查询命令0xA5 0x09 0xAE,传感器接受到这个命令就会返回一次光照数据,我发送了但是传感器没有返回数据
|
如果不是成熟产品,就要使用串口调试工具。
1,MCU发出的指令不正确,
2,传感器接收不到指令
解决办法:发出指令不正确就看自己的程序实现了,传感器接收不到指令,就要看看传感器是不是坏的了。
其他问题就自己在分析分析
评分
查看全部评分
问题是发送的数据那边收不到,感觉可以是以下几点问题:
1、485电路是自动收发电路么? 如不是,那么要程序控制相应引脚来切换485接收和发送,这个没做好数据是发不出去的
2、如果是自动收发电路,是不是楼主的自动收发电路有问题?
3、先测试下单片机发送引脚是否正常发送?方向控制引脚是否正常控制?
评分
查看全部评分
GY-485-44009光照传感器
评分
查看全部评分
评分
查看全部评分
我板子上接了485转换模块的
好的,谢谢啦
好的,谢谢啦,我再去检查检查程序
评分
查看全部评分
要的,谢谢啦,刚学stm32现在还没的啥子头绪,所以就想从实现一些小模块来熟悉stm32的板子
2.确保两边的参数一致。
评分
查看全部评分
模块有个使能脚,是否连接正确,需要使用1个IO口控制收发
评分
查看全部评分