TOF Sense激光测距模块的使用(stm32)
2020年电子设计竞赛F题中用到了激光测距模块。我使用的是Tof-sense,其他的产品也是大同小异的,如下图:
该模块使用方式非常简单,与stm32有两种通信方式,一种是can,另一种是串口通信,这里采用串口通信,模块 的 TXD 连接stm32的 RXD,模块 的 RXD 连接stm32的 TXD。数据格式如下:
协议由 Frame Header(帧头)、Function Mark(功能字)、Data(数据)、Sum Check(校验和)组成。其中 Frame Header、Function Mark 为固定不变的数值;Data 为传输的数据内容,Sum Check 为 Frame Header、Function Mark、Data 相加求和(即前面所有字节相加)后的最低字节。 协议组成:Frame Header + Function Mark + Data + Sum Check.
官方示例如下:
根据以上内容,编写stm32串口通信的代码:
void USART2_IRQHandler(void)
{
static u8 seri_count=0;
u16 check_sum=0;
u8 i;
static u8 flag=0;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
if(USART_ReceiveData(USART2) == 0x57)
{
flag = 1;
}
if(flag)
{
USART2_RX_BUF[seri_count++] =USART_ReceiveData(USART2);
if(seri_count == 16)
{
if(USART2_RX_BUF[0]==0x57 )
{
for( i = 0; i < 16-1; i++)
{
check_sum += USART2_RX_BUF
;
}
if((check_sum & 0x00ff)== USART2_RX_BUF[15]) {
TFMINI_Distance = (USART2_RX_BUF[10] <<16| USART2_RX_BUF[9]<<8|USART2_RX_BUF[8])/ 10;
}
seri_count = 0;
flag=0;
}
}
}
}
}
这样就可以获得距离数据了!
TOF Sense激光测距模块的使用(stm32)
2020年电子设计竞赛F题中用到了激光测距模块。我使用的是Tof-sense,其他的产品也是大同小异的,如下图:
该模块使用方式非常简单,与stm32有两种通信方式,一种是can,另一种是串口通信,这里采用串口通信,模块 的 TXD 连接stm32的 RXD,模块 的 RXD 连接stm32的 TXD。数据格式如下:
协议由 Frame Header(帧头)、Function Mark(功能字)、Data(数据)、Sum Check(校验和)组成。其中 Frame Header、Function Mark 为固定不变的数值;Data 为传输的数据内容,Sum Check 为 Frame Header、Function Mark、Data 相加求和(即前面所有字节相加)后的最低字节。 协议组成:Frame Header + Function Mark + Data + Sum Check.
官方示例如下:
根据以上内容,编写stm32串口通信的代码:
void USART2_IRQHandler(void)
{
static u8 seri_count=0;
u16 check_sum=0;
u8 i;
static u8 flag=0;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
if(USART_ReceiveData(USART2) == 0x57)
{
flag = 1;
}
if(flag)
{
USART2_RX_BUF[seri_count++] =USART_ReceiveData(USART2);
if(seri_count == 16)
{
if(USART2_RX_BUF[0]==0x57 )
{
for( i = 0; i < 16-1; i++)
{
check_sum += USART2_RX_BUF
;
}
if((check_sum & 0x00ff)== USART2_RX_BUF[15]) {
TFMINI_Distance = (USART2_RX_BUF[10] <<16| USART2_RX_BUF[9]<<8|USART2_RX_BUF[8])/ 10;
}
seri_count = 0;
flag=0;
}
}
}
}
}
这样就可以获得距离数据了!
举报