STM32F4+VL530L0x激光测距cubemx实现

本文介绍了如何使用STM32F427VGT6单片机通过cubemx配置RCC、SYS、IIC以及VL530L0x激光测距模块的使能口,详细阐述了从keil配置库到读取和显示数据的步骤,提供了一个简单的测距程序,并分享了完整的工程下载链接。
摘要由CSDN通过智能技术生成

前言

提示:本程序测试主控使用STM32F427VGT6系列单片机,使用cubemx作为开发工具,串口波特率为115200,使用VL530L0模块,使用IIC通信,可移植到相关STM32F4型号单片机上


一、STM32cubemx配置

a.配置RCC

RCC设置,选择HSE(外部高速时钟)为Crystal/Ceramic Resonator(晶振/陶瓷谐振器)

在这里插入图片描述

b.配置SYS


##c, 配置USART
这里使用串口1,波特率设为115200,开启中断,用于接收VL530的数据
在这里插入图片描述
在这里插入图片描述

c.配置VL530使能口

这里使用PB8,PB9作为SDA,SCL配置口,这里设为输出模式,电平拉高

在这里插入图片描述

d.时钟线配置

配置系统目录为180M最高速度,只用调节SYSCLK其它即可自动配置,时钟配置不同型号单片机可能不同,这里我设置为180MHZ
在这里插入图片描述

二、STM32F4 keil配置

1.引入库

a.引入IIC口配置

myiic.c配置

#include "myiic.h"
#include "delay.h"
//初始化IIC
void IIC_Init(void)
{
   			
  GPIO_InitTypeDef  GPIO_InitStructure;
	IIC_SCL=1;
	IIC_SDA=1;
}
//产生IIC起始信号
void IIC_Start(void)
{
   
	SDA_OUT();     //sda线输出
	IIC_SDA=1;	  	  
	IIC_SCL=1;
	delay_us(4);
 	IIC_SDA=0;//START:when CLK is high,DATA change form high to low 
	delay_us(4);
	IIC_SCL=0;//钳住I2C总线,准备发送或接收数据 
}	  
//产生IIC停止信号
void IIC_Stop(void)
{
   
	SDA_OUT();//sda线输出
	IIC_SCL=0;
	IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
 	delay_us(4);
	IIC_SCL=1; 
	IIC_SDA=1;//发送I2C总线结束信号
	delay_us(4);							   	
}
//等待应答信号到来
//返回值:1,接收应答失败
//        0,接收应答成功
u8 IIC_Wait_Ack(void)
{
   
	u8 ucErrTime=0;
	SDA_IN();      //SDA设置为输入  
	IIC_SDA=1;delay_us(1);	   
	IIC_SCL=1;delay_us(1);	 
	while(READ_SDA)
	{
   
		ucErrTime++;
		if(ucErrTime>250)
		{
   
			IIC_Stop();
			return 1;
		}
	}
	IIC_SCL=0;//时钟输出0 	   
	return 0;  
} 
//产生ACK应答
void IIC_Ack(void)
{
   
	IIC_SCL=0;
	SDA_OUT();
	IIC_SDA=0;
	delay_us(2);
	IIC_SCL=1;
	delay_us(2);
	IIC_SCL=0;
}
//不产生ACK应答		    
void IIC_NAck(void)
{
   
	IIC_SCL=0;
	SDA_OUT();
	IIC_SDA=1;
	delay_us(2);
	IIC_SCL=1;
	delay_us(2);
	IIC_SCL=0;
}					 				     
//IIC发送一个字节
//返回从机有无应答
//1,有应答
//0,无应答			  
void IIC_Send_Byte(u8 txd)
{
                           
    u8 t;   
	SDA_OUT(); 	    
    IIC_SCL=0;//拉低时钟开始数据传输
    for(t=0;t
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值