本帖最后由 hackathos 于 2016-4-6 14:41 编辑
一个测试压力传感器,用的是485协议,小弟新手,好多不明白,传感器参数如下:
启动传感器需要发送命令: 01 03 00 00 01 84 0a
比如返回 01 03 02 02 AC b9 59 命令,(都在图片中),计算出压力值。
硬件接法如下:
传感器数据线A,B接 “485转 TTL模块”的A,B端, 模块的TX接开发板的PA2,RX接PA3.头一次接触407头一次用485,修改原子哥【正点原子探索者STM32F407开发板例程连载+教学】第31章 485通信实验的程序,改来改去还是一头雾水简直凌乱不堪。如今485驱动等没问题,想跪求大神,
第一:硬件接线是否错误
第二:如果没有,改怎么编程发送 01 03 00 00 01 84 0a
第三:如果能给完整读取计算压力数值的代码那真感激不尽 了
如果连发送命令的这个问题不解决就要被辞职了....
程序实在不会写了....
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "rs485.h"
int main(void)
{
//u8 key;
u8 i=0;
u8 cnt=0;
//u8 rs485buf"01 03 00 00 00 01 84 0a"
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//
delay_init(168); //
uart_init(115200); /
LED_Init(); //
RS485_Init(9600); //
while(1)
{
LED1=!LED1;
RS485_Send_Data(rs485buf,8);//
RS485_Send_Data(u8 *buf,u8 len)
接收就相对麻烦一点,要用到串口接收中断处理。处理过程就是数据解包的过程,一两句话说不清楚。
接收到完整数据包之后,就根据协议中的数据格式,提取出代表气压的数据。
一周热门 更多>