stm32f4使用cubemx硬件IIC来驱动MS5607大气压传感器

本文介绍了如何使用STM32F407ZET6单片机,配置Cubemx硬件IIC来驱动MS5607大气压传感器。首先,详细说明了在Cubemx中配置硬件IIC的过程,然后阐述了MS5607传感器的代码编写步骤。
摘要由CSDN通过智能技术生成

目录

1.Cubemx配置硬件IIC

2.MS5607的代码编写


1.Cubemx配置硬件IIC

        

5913db5356e84dc2b6efebc36e6525e9.png (706×675)

 单片机使用的是STM32f407ZET6,主频168M。

2.MS5607的代码编写

#include "MS5607.h"


#include "i2c.h"

#include <rtthread.h>
#include <rtdbg.h>

#define MS5607_ADDR_WRITE    0x77<<1          //11011100
#define MS5607_ADDR_READ     (0x77<<1)+1     //11011101

/**
 * @brief   向MS5607发送一条指令(8bit)
 * @param   cmd —— MS5607指令(在MS5607Commads中枚举定义)
 * @retval  成功返回HAL_OK
*/
static uint8_t MS5607_Send_Cmd(MS5607Command cmd)
{
    return HAL_I2C_Master_Transmit(&hi2c1, MS5607_ADDR_WRITE, (uint8_t*)&cmd, 1, 0x00FF);
}

/**
 * @brief   复位MS5607
 * @param   none
 * @retval  none
*/
void MS5607_reset(void)
{
	MS5607_Send_Cmd(MS5607_CMD_RESET);
	rt_thread_mdelay(100);
}
/**
 * @brief   读取MS5607的PROM的值
 * @param   none
 * @retval  none
*/
void MS5607_Read_Prom(uint16_t *Buf)
{
	uint8_t dat[2] = {0};
	if(MS5607_Send_Cmd(MS5607_CMD_PROM_READ_0)!=0)
		rt_kprintf("MS5607_Wtite_Prom[0]_FAil = %d\r\n",MS5607_Send_Cmd(MS5607_CMD_PROM_READ_0));
	rt_thread_mdelay(2);
	if(HAL_I2C_Master_Receive(&hi2c1, MS5607_ADDR_READ, dat, 2, 0xFFFF)!&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值