×
单片机 > 单片机程序设计 > 详情

JSN-SR04T超声波模块驱动(模式二、STM32)

发布时间:2020-06-02 发布时间:
|

一、前期准备

单片机:STM32F103C8T6

开发环境:MDK5.14

库函数:标准库V3.5

JSN-SR04T模块:淘宝有售

二、实验效果


三、驱动原理

此模块分3中模式:

(1)模式一:R27 = open,普通驱动模式;

(2)模式二:R27 = 47K,串口模式,每隔100ms更新一次数据。

(3)模式三:R27 = 120K,串口模式,发0x55。

注意:次模块测试盲区20cm。


串口二接收模块数据,每隔100ms刷新次数据,串口接收数据之后,做完校验之后算出测试距离并打印出来。

需要完整工程或者有问题的请加QQ:1002521871,验证:呵呵。


四、驱动代码

JSN-SR04T.h


#ifndef __JSN_SR04T_H__

#define __JSN_SR04T_H__

#include "stm32f10x.h"

#include "conf.h"


extern void JSN_SR04T_SendStartSignal(void);

extern void JSN_SR04T_DealWithMess(uint8_t *RecData, uint16_t *Distance);

#endif



JSN-SR04T.c


#include "jsn_sr04t.h"


void JSN_SR04T_SendStartSignal(void)

{

USART_Cmd(USART2, ENABLE);

}


void JSN_SR04T_DealWithMess(uint8_t *RecData, uint16_t *Distance)

{

if (SR04T_len == 4)

{

if (RecData[0] == 0xFF)

{

if (RecData[3] == ((0xFF + RecData[1] + RecData[2]) & 0x00FF))

{

*Distance = 0;

*Distance |= RecData[1] << 8;

*Distance |= RecData[2];

USART_Cmd(USART2, DISABLE);

}

else

{

*Distance = 0;

}

}

else

{

*Distance = 0;

}

}

else

{

*Distance = 0;

}

memset(RecData, 0, RecDataLen);

}



关键字:JSN-SR04T  超声波模块  模式二  STM32

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向