chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CW32模塊使用 MS5611氣壓傳感器

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2024-12-05 12:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、模塊來源

模塊實(shí)物展示:

wKgZPGdRJamAdE2CAAAlhGtYYrg435.jpg


資料下載鏈接:
https://pan.baidu.com/s/1QOrpiggCE6mBpqabJXUufg
提取碼:c2pp

二 、規(guī)格參數(shù)

工作電壓:1.8~3.6V

工作電流:0.25~23uA

溫度精度:0.8℃

溫度范圍:-40~85℃

氣壓范圍:10~1200 mbar

氣壓精度:1.5 mbar

輸出方式: IIC

管腳數(shù)量:3 Pin

以上信息見廠家資料文件

三、移植過程

我們的目標(biāo)是將例程移植至CW32F030C8T6開發(fā)板上【能夠測量環(huán)境氣壓】。首先要獲取資料,查看數(shù)據(jù)手冊應(yīng)如何實(shí)現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。

3.1查看資料

當(dāng)PS引腳接高電平時,傳感器屬于IIC模式;當(dāng)PS引腳接低電平時,傳感器屬于SPI模式;在原理圖上,PS引腳通過上拉電阻接了高電平,故默認(rèn)為IIC模式。

wKgZO2dRJamAKxJeAABU9qUS9N4484.jpg

器件地址 = 0XEE

CSB的反補(bǔ)碼 即CSB引腳接高電平時, 地址為 1110 110+(讀寫位)

CSB的反補(bǔ)碼 即CSB引腳接低電平時, 地址為 1110 111+(讀寫位)

wKgZPGdRJamARG7SAAASjBwQs4c065.jpg

讀取氣壓與溫度的流程:開始-> 讀取出廠校準(zhǔn)值C1至C6 -> 讀取氣壓D1和溫度D2的原始數(shù)據(jù) -> 將D2和C1C6帶入公式求出dT和TEMP,其中TEMP為溫度數(shù)據(jù)-> 將dT和C1至C6帶入公式求出OFF、SENS和P,其中P為氣壓數(shù)據(jù)。

wKgZO2dRJaqAJw5NAADoWr_EpeE904.jpg

3.2引腳選擇

wKgZPGdRJaqABXfTAAFUnCnYQAE450.jpg

模塊接線圖

3.3移植至工程

移植步驟中的導(dǎo)入.c和.h文件與【CW32模塊使用】DHT11溫濕度傳感器相同,只是將.c和.h文件更改為bsp_ms5611.c與bsp_ms5611.h。這里不再過多講述,移植完成后面修改相關(guān)代碼。

在文件bsp_ms5611.c中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-20     LCKFB-LP    first version
 */

#include "bsp_ms5611.h"
#include "stdio.h"
#include "board.h"

//出廠校準(zhǔn)值
//Cal_C1_6[0]                                 = 廠家信息
//Cal_C1_6[1] ~ Cal_C1_6[6] = 校準(zhǔn)值
//Cal_C1_6[7]                                 = 校準(zhǔn)值的CRC校驗(yàn)
uint16_t Cal_C1_6[8];


/******************************************************************
 * 函 數(shù) 名 稱:MS5611_GPIO_Init
 * 函 數(shù) 說 明:MS5611的引腳初始化
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void MS5611_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體

    RCC_MS5611_ENBALE();        // 使能GPIO時鐘

    GPIO_InitStruct.Pins = GPIO_SDA|GPIO_SCL;   // GPIO引腳
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; // 開漏輸出
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;    // 輸出速度高
    GPIO_Init(PORT_MS5611, &GPIO_InitStruct);   // 初始化
}


/******************************************************************
 * 函 數(shù) 名 稱:IIC_Start
 * 函 數(shù) 說 明:IIC起始時序
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Start(void)
{
        SDA_OUT();

        SDA(1);
        delay_us(5);
        SCL(1);
        delay_us(5);

        SDA(0);
        delay_us(5);
        SCL(0);
        delay_us(5);

}
/******************************************************************
 * 函 數(shù) 名 稱:IIC_Stop
 * 函 數(shù) 說 明:IIC停止信號
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Stop(void)
{
        SDA_OUT();
        SCL(0);
        SDA(0);

        SCL(1);
        delay_us(5);
        SDA(1);
        delay_us(5);

}

/******************************************************************
 * 函 數(shù) 名 稱:IIC_Send_Ack
 * 函 數(shù) 說 明:主機(jī)發(fā)送應(yīng)答或者非應(yīng)答信號
 * 函 數(shù) 形 參:0發(fā)送應(yīng)答  1發(fā)送非應(yīng)答
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void IIC_Send_Ack(unsigned char ack)
{
        SDA_OUT();
        SCL(0);
        SDA(0);
        delay_us(5);
        if(!ack) SDA(0);
        else         SDA(1);
        SCL(1);
        delay_us(5);
        SCL(0);
        SDA(1);
}


/******************************************************************
 * 函 數(shù) 名 稱:I2C_WaitAck
 * 函 數(shù) 說 明:等待從機(jī)應(yīng)答
 * 函 數(shù) 形 參:無
 * 函 數(shù) 返 回:0有應(yīng)答  1超時無應(yīng)答
 * 作       者:LC
 * 備       注:無
******************************************************************/
unsigned char I2C_WaitAck(void)
{

        char ack = 0;
        unsigned char ack_flag = 10;
        SCL(0);
        SDA(1);
        SDA_IN();
        delay_us(5);
        SCL(1);
        delay_us(5);

        while( (SDA_GET()==1) && ( ack_flag ) )
        {
                ack_flag--;
                delay_us(5);
        }

        if( ack_flag <= 0 )
        {
                IIC_Stop();
                return 1;
        }
        else
        {
                SCL(0);
                SDA_OUT();
        }
        return ack;
}

/******************************************************************
 * 函 數(shù) 名 稱:Send_Byte
 * 函 數(shù) 說 明:寫入一個字節(jié)
 * 函 數(shù) 形 參:dat要寫人的數(shù)據(jù)
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void Send_Byte(uint8_t dat)
{
        int i = 0;
        SDA_OUT();
        SCL(0);//拉低時鐘開始數(shù)據(jù)傳輸

        for( i = 0; i < 8; i++ )
        {
                SDA( (dat & 0x80) >> 7 );
                delay_us(1);
                SCL(1);
                delay_us(5);
                SCL(0);
                delay_us(5);
                dat

在文件bsp_sht10.h中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-20     LCKFB-LP    first version
 */

#ifndef _BSP_MS5611_H_
#define _BSP_MS5611_H_

#include "board.h"


//端口移植
#define RCC_MS5611_ENBALE()        __RCC_GPIOB_CLK_ENABLE()
#define PORT_MS5611                CW_GPIOB


#define GPIO_SDA                   GPIO_PIN_9
#define GPIO_SCL                   GPIO_PIN_8

//設(shè)置SDA輸出模式
#define SDA_OUT()   {        
                        GPIO_InitTypeDef GPIO_InitStruct;                
                        GPIO_InitStruct.Pins = GPIO_SDA;                 
                        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;      
                        GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         
                        GPIO_Init(PORT_MS5611, &GPIO_InitStruct);       
                     }
//設(shè)置SDA輸入模式
#define SDA_IN()    {        
                        GPIO_InitTypeDef GPIO_InitStruct;                
                        GPIO_InitStruct.Pins = GPIO_SDA;                 
                        GPIO_InitStruct.Mode = GPIO_MODE_INPUT;         
                        GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         
                        GPIO_Init(PORT_MS5611, &GPIO_InitStruct);       
                    }
//獲取SDA引腳的電平變化
#define SDA_GET()       GPIO_ReadPin(PORT_MS5611, GPIO_SDA)
//SDA與SCL輸出
#define SDA(x)          GPIO_WritePin(PORT_MS5611, GPIO_SDA, (x?GPIO_Pin_SET:GPIO_Pin_RESET) )
#define SCL(x)          GPIO_WritePin(PORT_MS5611, GPIO_SCL, (x?GPIO_Pin_SET:GPIO_Pin_RESET) )


void MS5611_GPIO_Init(void);
char MS5611_Reset(void);
void MS5611_Read_PROM(void);
float Get_TEMP(void);
float Get_pressure(void);

#endif

四、移植驗(yàn)證

在自己工程中的main主函數(shù)中,編寫如下。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-20     LCKFB-LP    first version
 */
#include "board.h"
#include "stdio.h"
#include "bsp_uart.h"
#include "bsp_ms5611.h"

int32_t main(void)
{
    board_init();        // 開發(fā)板初始化

    uart1_init(115200);        // 串口1波特率115200

    MS5611_GPIO_Init();

    MS5611_Reset();//器件復(fù)位

    delay_ms(300);//等待初始化完成;

    MS5611_Read_PROM();//讀取出廠校準(zhǔn)值
    printf("startrn");
    while(1)
    {
        //輸出溫度
        printf("溫度 = %.0f℃rn",Get_TEMP() );
        //輸出氣壓
        printf("氣壓 = %.2fHParn",Get_pressure() );

        printf("n");
        delay_ms(1000);

    }
}

移植現(xiàn)象:每隔一秒左右測量一次溫度和氣壓。

wKgZO2dRJaqAOhuNAADVTu4IipI077.jpg

模塊移植成功案例代碼:

鏈接:https://pan.baidu.com/s/1unyWALyDcHWy02K_Y77blQ?pwd=LCKF

提取碼:LCKF

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2576

    文章

    54802

    瀏覽量

    789185
  • 氣壓傳感器
    +關(guān)注

    關(guān)注

    4

    文章

    145

    瀏覽量

    22065
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    299

    瀏覽量

    1744
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    防水型氣壓傳感器

    何謂氣壓傳感器?氣壓傳感器是指檢測大氣壓值及高度變化的傳感器,被用于智能手機(jī)、智能手表及無人機(jī)等
    的頭像 發(fā)表于 01-14 12:02 ?117次閱讀
    防水型<b class='flag-5'>氣壓</b><b class='flag-5'>傳感器</b>

    CW32仿真是什么?

    CW32仿真是什么
    發(fā)表于 01-05 08:04

    請問CW32芯片有哪些功能模塊?

    CW32芯片有哪些功能模塊?
    發(fā)表于 12-26 08:11

    CW32溫度傳感器的應(yīng)用

    CW32F030 內(nèi)置溫度傳感器模塊,傳感器的輸出電壓隨溫度變化,設(shè)置 ADC 模塊的采樣通道為內(nèi)部溫度
    發(fā)表于 12-15 08:18

    CW32單片機(jī)如何讓生活更便捷

    這是一種全新的生活方式,它通過接收并處理傳感器的數(shù)據(jù),以控制智能馬桶的所有功能。感謝CW32單片機(jī),我們可以在日常生活中無縫地融入這種新的科技。 決定我們?nèi)绾紊畹模呀?jīng)不再只是我們的選擇,更是我們
    發(fā)表于 12-11 06:11

    CW32單片機(jī)在智能馬桶的應(yīng)用

    1.溫度感應(yīng)與控制 智能馬桶內(nèi)設(shè)有溫度傳感器,通過CW32單片機(jī)的處理,可以實(shí)時感知到用戶所需的座圈溫度并根據(jù)用戶的設(shè)定進(jìn)行調(diào)節(jié)。當(dāng)溫度過高或過低時,單片機(jī)將發(fā)出信號,通過控制模塊對座圈的加熱或制冷
    發(fā)表于 12-04 08:01

    基于芯源CW32 MCU的LED閃爍示例及代碼分析

    最近我在項(xiàng)目中使用了芯源的CW32 MCU,這是一款非常適合物聯(lián)網(wǎng)和低功耗應(yīng)用的微控制。在初步學(xué)習(xí)和使用中,我做了一個簡單的LED閃爍實(shí)驗(yàn),通過這篇帖子給大家分享一下代碼及相關(guān)的配置步驟。 硬件
    發(fā)表于 12-04 06:52

    CW32 MCU溫度監(jiān)測應(yīng)用

    監(jiān)測環(huán)境溫度,并通過串口將數(shù)據(jù)發(fā)送到PC端進(jìn)行顯示。 硬件連接 CW32 MCU LM35溫度傳感器 USB轉(zhuǎn)串口模塊 代碼實(shí)現(xiàn) #include \"cw32f030.h\&qu
    發(fā)表于 12-03 08:03

    基于芯源CW32 MCU智能家居照明控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    。 光照傳感器:用于檢測環(huán)境亮度,自動調(diào)節(jié)燈光亮度。 Wi-Fi模塊(如ESP8266):實(shí)現(xiàn)與手機(jī)應(yīng)用或智能音箱的無線通信,遠(yuǎn)程控制照明系統(tǒng)。 繼電器模塊:控制燈光的開關(guān)。 按鍵/觸摸面板:用戶在本地可以
    發(fā)表于 12-03 06:06

    cw32 systick怎么用?

    cw32 systick怎么用
    發(fā)表于 12-01 08:10

    CW32 MCU用什么IDE開發(fā)?

    推薦使用IAR Embedded Workbench for ARM、Keil μVision for ARM等IDE開發(fā)CW32 MCU應(yīng)用,其中新版本IAR EWARM直接支持CW32 MCU,Keil MDK-ARM則需要安裝CW
    發(fā)表于 11-12 07:52

    CW32 MCU有哪些系列?

    目前CW32 MCU有通用高性能MCU、安全低功耗MCU、無線射頻MCU等3個系列。其中射頻MCU集成了無線收發(fā),主要包括CW32R031(2.4GHz BLE-Lite)系列和CW
    發(fā)表于 11-12 07:34

    CW32 MCU用什么仿真開發(fā)?

    理論上各主流IDE枚舉的、支持ARM Cortex內(nèi)核的所有硬件仿真,比如:J-LINK,ULINK,DAP,ST-Link等,都可以仿真、下載CW32 MCU的應(yīng)用代碼。如果想實(shí)現(xiàn)量產(chǎn)或者離線下載應(yīng)用代碼,則必須配套支持CW32
    發(fā)表于 11-12 06:01

    CW32電機(jī)控制基礎(chǔ)--無刷電機(jī)無位置傳感器的轉(zhuǎn)子位置檢測技術(shù)

    無位置傳感器的無刷直流電機(jī)的位置估計(jì)方法可以從5個方面來論述:反電動勢法、電流法、狀態(tài)觀測法、人工智能法和磁鏈法。這幾種方法的研究相對比較成熟,且都已得到一定程度的應(yīng)用。CW32生態(tài)社區(qū)在方波控制的相關(guān)應(yīng)用和Demo中多使用反
    的頭像 發(fā)表于 10-09 17:06 ?3471次閱讀
    <b class='flag-5'>CW32</b>電機(jī)控制基礎(chǔ)--無刷電機(jī)無位置<b class='flag-5'>傳感器</b>的轉(zhuǎn)子位置檢測技術(shù)

    MS4525DO-TP3AJ030APF壓力傳感器測量氣壓高度

    MS4525DO-TP3AJ030APF傳感器10kHz的高頻采樣能力可捕捉到氣壓的瞬時波動,配合I2C數(shù)字輸出接口,能實(shí)時傳輸數(shù)據(jù)至飛控系統(tǒng)。在氣壓高度的的實(shí)測中發(fā)現(xiàn),其海拔高度分辨
    的頭像 發(fā)表于 06-03 10:19 ?828次閱讀
    <b class='flag-5'>MS</b>4525DO-TP3AJ030APF壓力<b class='flag-5'>傳感器</b>測量<b class='flag-5'>氣壓</b>高度