• 方案介紹
    • 附件下載
    • 推薦器件
    • 相關(guān)推薦
    申請(qǐng)入駐 產(chǎn)業(yè)圖譜

    基于STM32F746的汽車環(huán)境狀態(tài)檢測(cè)控制器

    2024/05/14
    3109
    加入交流群
    掃碼加入
    獲取工程師必備禮包
    參與熱點(diǎn)資訊討論

    SHTC3.PDF

    共3個(gè)文件

    一、項(xiàng)目名稱:

    基于STM32F746-DISO的車內(nèi)環(huán)境狀態(tài)控制顯示儀表盤。

    二、項(xiàng)目概述:

    本項(xiàng)目主要是基于STM32F746高性能MCU的STM32F746-DISC開發(fā)板,實(shí)現(xiàn)車內(nèi)溫濕度監(jiān)測(cè)。以及控制車內(nèi)燈光。STM32F746-DISC板載4.3寸電容觸摸LCD,使用LCD顯示GUI畫面是基于ST的GUI設(shè)計(jì)器TouchGFX設(shè)計(jì),并且使用FreeRTOS嵌入式操作系統(tǒng)內(nèi)核進(jìn)行任務(wù)調(diào)度。做這個(gè)項(xiàng)目主要是為了方便車內(nèi)乘客了解車內(nèi)環(huán)境狀況,以及方便乘客對(duì)車內(nèi)一些無關(guān)駕駛方面的控制。目前車內(nèi)屏幕控制和顯示都在司機(jī)前面板,對(duì)于后排乘客操作任何東西都需要經(jīng)過司機(jī)來處理,非常不方便。這個(gè)項(xiàng)目設(shè)備可以放在后排,方便后面乘客,既減輕了司機(jī)壓力又方便了乘客坐車體驗(yàn)。

    通過本設(shè)備可以查看車內(nèi)溫濕度,就可以調(diào)整車內(nèi)空調(diào)溫度高低。還可以控制車上照明燈,方便晚上坐車時(shí),給后面乘客車頂照明。還有座椅下方照明。

    三、整體設(shè)計(jì)方案

    3.1、硬件方案

    整體使用STM32F746-diso開發(fā)板,利用板載觸摸lcd作為顯示和界面操控。外擴(kuò)有溫濕度傳感器,IO輸出和彩燈控制等等。

    整體框圖如下:

    下面是設(shè)計(jì)的擴(kuò)展板:利用板上ARDUINO接口,直接插在板子上。使用I2C接口的溫濕度傳感器SHTC3,以及燈光控制部分。

    如下圖所示:

    實(shí)物如下:

    電路圖如下:

    整體硬件如下:

    3.2、軟件驅(qū)動(dòng)

    下面是溫濕度傳感器驅(qū)動(dòng)程序部分。

    int SHTC3_CalcTemperature(uint16_t rawValue)
    {
    // calculate temperature
    // T = -45 + 175 * rawValue / 2^16
    return (((175*1 * rawValue)>>16) - 45*1); //放大100倍
    }

    int SHTC3_CalcHumidity(uint16_t rawValue)
    {
    // calculate relative humidity
    // RH = rawValue / 2^16 * 100
    return ((100 * 1 * rawValue)>>16); //放大100倍
    }

    static uint8_t SHTC3_CheckCRC(uint8_t *buff, uint32_t nbyte)
    {
    uint32_t i; // byte counter
    uint8_t bit; // bit mask
    uint8_t crc = 0xFF; // calculated checksum

    // calculates 8-Bit checksum with given polynomial
    for(i = 0; i < nbyte; i++)
    {
    crc ^= (buff[i]);
    for(bit = 8; bit > 0; --bit)
    {
    if(crc & 0x80) {
    crc = (crc << 1) ^ SHTC3_CRC_POLYNOMIAL;
    } else {
    crc = (crc << 1);
    }
    }
    }
    return crc;
    }
    uint16_t shtc3_id;
    uint16_t SHTC3_Init(void)
    {
    uint8_t buff[4]={0};
    shtc3_id = 0;
    shtc3_gpio_init();

    HAL_Delay(1);
    SHTC3_ReadData(SHTC3_REG_ID,buff,3);
    if(buff[2] != SHTC3_CheckCRC(buff,2))
    {
    return -1;
    }
    HAL_Delay(10);
    SHTC3_WriteCmd(SHTC3_REG_WAKEUP);
    shtc3_id = (buff[0]<<8)|buff[1];
    return shtc3_id;
    }

    uint8_t SHTC3_GetMode1_TempRH(int *temp, int *humi)
    {
    uint8_t buff[8]={0};

    SHTC3_ReadData(SHTC3_REG_CELPM_TEMP_RH,buff,6);
    if((buff[2] != SHTC3_CheckCRC(buff,2))||(buff[5] != SHTC3_CheckCRC(&buff[3],2)))
    {
    return 1;
    }
    *temp = SHTC3_CalcTemperature((buff[0]<<8)|buff[1]);
    *humi = SHTC3_CalcHumidity((buff[3]<<8)|buff[4]);
    return 0;
    }

    復(fù)制代碼

    界面實(shí)時(shí)時(shí)間顯示驅(qū)動(dòng),RTC使用ST的HAL庫API獲取。

    HAL_RTC_GetTime(&hrtc,&GetTime,RTC_FORMAT_BIN);
    HAL_RTC_GetDate(&hrtc,&GetDate,RTC_FORMAT_BIN);

    Hours = GetTime.Hours;
    Minutes = GetTime.Minutes;
    Seconds = GetTime.Seconds;

    Years = GetDate.Year;
    Months = GetDate.Month;
    Days = GetDate.Date;
    Weeks = GetDate.WeekDay;
    xprintf("%d-%d-%d %d rn",Years,Months,Days,Weeks);
    xprintf("%d:%d:%d rn",Hours,Minutes,Seconds);

    復(fù)制代碼

    使用RTC有點(diǎn)要注意的地方就是HAL_RTC_GetTime()和HAL_RTC_GetDate()都要調(diào)用,而且要先調(diào)用HAL_RTC_GetTime(),再調(diào)用HAL_RTC_GetDate()。

    開始沒注意,導(dǎo)致RTC時(shí)鐘不動(dòng)。下面是我找到原因

    所有GUI使用ST的TouchGFX 4.23軟件設(shè)計(jì)。

    四、作品實(shí)物圖及演示視頻展示

    演示視頻

    https://www.bilibili.com/video/BV1f94y1K7vv/

    五、項(xiàng)目資料及程序

    • SHTC3.PDF
      下載
    • project-CarGui.zip
      下載
    • F746-ARDUINO-SCH.pdf
      下載

    推薦器件

    更多器件
    器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
    ATXMEGA256A3BU-AU 1 Microchip Technology Inc IC MCU 8BIT 256KB FLASH 64TQFP

    ECAD模型

    下載ECAD模型
    $8.44 查看
    AT89C51CC03UA-RDTUM 1 Atmel Corporation Microcontroller, 8-Bit, FLASH, 8051 CPU, 60MHz, CMOS, PQFP64, GREEN, VQFP-64

    ECAD模型

    下載ECAD模型
    $9.5 查看
    TMS320F28335PGFA 1 Texas Instruments C2000&trade; 32-bit MCU with 150 MIPS, FPU, 512 KB flash, EMIF, 12b ADC 176-LQFP -40 to 85

    ECAD模型

    下載ECAD模型
    $29.61 查看
    意法半導(dǎo)體

    意法半導(dǎo)體

    意法半導(dǎo)體(ST)集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSON Microelectronics將公司名稱改為意法半導(dǎo)體有限公司。意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一,公司銷售收入在半導(dǎo)體工業(yè)五大高速增長市場(chǎng)之間分布均衡(五大市場(chǎng)占2007年銷售收入的百分比):通信(35%),消費(fèi)(17%),計(jì)算機(jī)(16%),汽車(16%),工業(yè)(16%)。 據(jù)最新的工業(yè)統(tǒng)計(jì)數(shù)據(jù),意法半導(dǎo)體是全球第五大半導(dǎo)體廠商,在很多市場(chǎng)居世界領(lǐng)先水平。例如,意法半導(dǎo)體是世界第一大專用模擬芯片和電源轉(zhuǎn)換芯片制造商,世界第一大工業(yè)半導(dǎo)體和機(jī)頂盒芯片供應(yīng)商,而且在分立器件、手機(jī)相機(jī)模塊和車用集成電路領(lǐng)域居世界前列.

    意法半導(dǎo)體(ST)集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSON Microelectronics將公司名稱改為意法半導(dǎo)體有限公司。意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一,公司銷售收入在半導(dǎo)體工業(yè)五大高速增長市場(chǎng)之間分布均衡(五大市場(chǎng)占2007年銷售收入的百分比):通信(35%),消費(fèi)(17%),計(jì)算機(jī)(16%),汽車(16%),工業(yè)(16%)。 據(jù)最新的工業(yè)統(tǒng)計(jì)數(shù)據(jù),意法半導(dǎo)體是全球第五大半導(dǎo)體廠商,在很多市場(chǎng)居世界領(lǐng)先水平。例如,意法半導(dǎo)體是世界第一大專用模擬芯片和電源轉(zhuǎn)換芯片制造商,世界第一大工業(yè)半導(dǎo)體和機(jī)頂盒芯片供應(yīng)商,而且在分立器件、手機(jī)相機(jī)模塊和車用集成電路領(lǐng)域居世界前列.收起

    查看更多

    相關(guān)推薦