一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

聚豐項目 > 基于AB32VG1開發(fā)板的設備溫度檢測

基于AB32VG1開發(fā)板的設備溫度檢測

基于RT-Thread 的Sensor框架對應的軟件包max6675,通過AB32VG1開發(fā)板模擬spi驅(qū)動,讀取熱電偶傳感器的數(shù)據(jù),并通過串口輸出,到串口屏顯示圖形。 非常感謝這次大賽主辦方睿賽德,中科藍訊,elecfan,為我們提供了很好的軟件硬件平臺,學習到基于嵌入式系統(tǒng)開發(fā)技術(shù),提升一下技能,為今后的工作積累經(jīng)驗。同時深深感受到,我們國產(chǎn)軟件硬件系統(tǒng)在崛起了! 感謝群里各位大佬,無私奉獻

jf_13982707 jf_13982707

分享
3 喜歡這個項目
團隊介紹

jf_13982707 jf_13982707

團隊成員

ninda 技術(shù)員

分享
項目簡介
基于RT-Thread 的Sensor框架對應的軟件包max6675,通過AB32VG1開發(fā)板模擬spi驅(qū)動,讀取熱電偶傳感器的數(shù)據(jù),并通過串口輸出,到串口屏顯示圖形。 非常感謝這次大賽主辦方睿賽德,中科藍訊,elecfan,為我們提供了很好的軟件硬件平臺,學習到基于嵌入式系統(tǒng)開發(fā)技術(shù),提升一下技能,為今后的工作積累經(jīng)驗。同時深深感受到,我們國產(chǎn)軟件硬件系統(tǒng)在崛起了! 感謝群里各位大佬,無私奉獻
硬件說明

 AB32VG1開發(fā)板,用GPIO模擬spi接口,接到溫度傳感器模塊




溫度傳感器模塊MAX6675,采用spi數(shù)據(jù)接口和開發(fā)板通訊,三根信號線so,cs,sck分別接到MISO,CS,SCLK,電源VCC,GND,+,-接到熱電偶傳感器

串口屏(構(gòu)成:TFT顯示屏,spi接口連接到ESP32開發(fā)板),通過串口連接到AB32VG1,接收并圖形化顯示傳感器數(shù)據(jù)圖表

tft.jpg

軟件說明

1、軟件構(gòu)成:rtthread開發(fā)環(huán)境,sensor軟件包,max6675軟件包,Arduino編譯器,littleVGL圖形界面,vscode編輯器。

2、驅(qū)動:rtthread硬件設備驅(qū)動框架,rtthread硬件管理系統(tǒng),spi驅(qū)動,uart模塊,msh模塊,downloader下載器

3、線程:rtthread線程保障實時傳感器數(shù)據(jù)采集,信號量實現(xiàn)同步串口發(fā)送數(shù)據(jù),互斥量保護傳感器數(shù)據(jù)集正確性

4、spi接口說明:非常感謝大神提供的drvsoftspi,讓AB32VG1實現(xiàn)可以定制gpio為spi接口,

    通過SOFT_SPI1_BUS_CONFIG結(jié)構(gòu)體,設置miso=10,mosi=8,sck=9,將相應編號的io點連線到傳感器模塊的so->10,clk->9,cs->19,板級初始化 實現(xiàn)spi0設備總線,

    max6675_init(const char *spi_device_name)中rt_soft_spi_device_attach("spi0","spi10",RT_NULL,19)將傳感器設備掛載到spi0總線,片選cs=19,成為設備spi10,

    rt_spi_configure(dev->spi, &cfg); //配置傳輸模式,設置spi10設備讀寫時序邏輯,cpol=1,cpha=0,datawidth=16。

5、代碼倉庫:https://gitee.com/alphasu1109/max6675_temp

image.png


image.png


數(shù)據(jù)顯示線程,1秒定時,周期性讀取sensor數(shù)據(jù),存入全局變量temp1,釋放信號量rxsem,同步串口發(fā)送數(shù)據(jù)

            if (sensor_data.data.temp >= 0)

            {

                rt_kprintf("temp:%3d.%dC, timestamp:%5d\n",

                           sensor_data.data.temp / 100,

                           sensor_data.data.temp % 100,

                           sensor_data.timestamp);

            }

            else

            {

                rt_kprintf("temp:-%2d.%dC, timestamp:%5d\n",

                           abs(sensor_data.data.temp / 100),

                           abs(sensor_data.data.temp % 100),

                           sensor_data.timestamp);

            }


            temp1=sensor_data.data.temp;

            //temp1=5;

            rt_sem_release(&rx_sem);



遇到的坑:1,找不到max6675_read_temp(),原因是drvsoftspi.c沒有被編譯,通過勾選setting組建spi,并修改同級目錄中sconscript文件,增加編譯條件后解決。

2.掛載以后,通過list_device,能看到spi10,但是讀取數(shù)據(jù)總是0,原因是沒有設置時序邏輯,spi初始值datawidth是8,cpol和cpha都是0,經(jīng)過檢查max6675數(shù)據(jù)手冊,重新修改配置后,成功讀取數(shù)據(jù)。

3.include "spi.h" 編譯報錯,找不到,沒有包含在include文件夾內(nèi),經(jīng)過檢查"rt_thread/components/drivers/include"文件夾,存在"rtdevice.h"文件,里面含有spi.h加載過程,#ifdef RT_USING_SPI #include "spi.h" #endif,  因此改為#include "rtdevice.h"


演示效果

image.png


image.png








評論區(qū)(0 )