国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CH32V307環(huán)境參數(shù)在線監(jiān)測系統(tǒng)(一)

這篇具有很好參考價值的文章主要介紹了CH32V307環(huán)境參數(shù)在線監(jiān)測系統(tǒng)(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

CH32V307環(huán)境參數(shù)在線監(jiān)測系統(tǒng)是以CH32V307VCT6為核心,由ESP8266模塊、DHT11溫濕度傳感器模塊、TFT LCD顯示屏組成。系統(tǒng)實物圖如下所示:

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

? ? ?系統(tǒng)功能主要有RTC實時時鐘、WIFI網(wǎng)絡(luò)授時、DHT11溫度測量、溫濕度數(shù)據(jù)實時上傳到onenet平臺、屏幕定時刷新等功能。本例程主要用到CH32V307的GPIO、串口、AD轉(zhuǎn)換、定時器、RTC功能。今天先來看一下GPIO端口操作。?

CH32V307官方例程提供了GPIO應(yīng)用的基本案例。官方案例代碼主函數(shù)如下:

? ? ?主程序首先是通過NVIC_PriorityGroupConfig配置優(yōu)先級分組-搶占優(yōu)先級和次優(yōu)先級,然后根據(jù)時鐘寄存器值更新系統(tǒng)核心時鐘變量,官方例程默認(rèn)采用外部高速時鐘作為時鐘源,倍頻至96MHZ。Delay_Init為ms級延時函數(shù)。初始化串口,用于輸出調(diào)試信息。然后就是通過初始化函數(shù)初始PD0。在while循環(huán)中,通過GPIO_WriteBit函數(shù)對PD0進(jìn)行寫操作。? ? ? ??一般而言,嵌入式系統(tǒng)在正式工作前,都要進(jìn)行一些初始化工作,比如GPIO使用前,先進(jìn)行GPIO的初始化,如官方例程GPIO_Toggle_INIT函數(shù),一般我們寫成一個函數(shù)的形式。GPIO初始化函數(shù)如下圖所示,

? ? ? 這里GPIO初始化函數(shù)首先定義了一個GPIO_InitTypeDef類型的結(jié)構(gòu)體變量。右鍵打開其聲明可以看到這個結(jié)構(gòu)變量的成員如下:有GPIO_Pin、GPIO_Speed和GPIO_Mode三個成員變量。

? ? ? 這里GPIO_Pin就是需要配置的引腳。在ch32v30x_gpio.h的頭文件中可以看到其預(yù)定義,如下圖所示

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

GPIO_Speed為所選擇的初始化引腳的輸出響應(yīng)速度這個速度是指I/O口驅(qū)動電路的響應(yīng)速度而不是輸出信號的速度,輸出信號的速度與程序有關(guān)),芯片內(nèi)部在I/O口的輸出部分安排了多個響應(yīng)速度不同的輸出驅(qū)動電路,可以根據(jù)需要選擇合適的驅(qū)動電路。在輸出模式時可選速度如下:10MHz、2MHz、50MHz。

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

? ??? 這里需要注意:高頻的驅(qū)動電路,噪聲也高,當(dāng)不需要高的輸出頻率時,請選用低頻驅(qū)動電路,這個非常有利于提高系統(tǒng)的電磁干擾(EMI)性能。當(dāng)然如果要輸出較高頻率的信號,但卻選用了較低頻率的驅(qū)動模塊,很可能會得到失真的輸出信號。關(guān)鍵是GPIO的引腳速度跟應(yīng)用匹配,推薦10倍以上。對于串口,假如最大波特率只需要115.2K,那么用2M的GPIO的引腳速度就夠了,既省電也噪聲??;對于IIC接口,假如用400K的傳輸速率,若想把余量留大些,那么用2M的GPIO的引腳速度或許不夠。這時可以選擇10M的GPIO引腳速度;對于SPI通信,假如使用18M或9M的傳輸速率,用10M的GPIO的引腳速度顯然不夠,需要選用50M的GPIO的引腳速度。

? ?GPIO_Mode所選擇引腳的操作模式,CH32V307系列的MCU的輸入/輸出引腳可配置為一下8種模式(4種輸入模式+2種輸出模式+2種復(fù)用輸出模式)。

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

GPIO_Mode_AIN為模擬輸入,ADC對應(yīng)的引腳配置引腳為模擬輸入

GPIO_Mode_IN_FLOATING為浮空輸入

GPIO_Mode_IPD帶下拉輸入

GPIO_Mode_IPU帶上拉輸入

GPIO_Mode_Out_OD開漏輸出,要得到高電平狀態(tài)需要上拉電阻才行如果引腳不連接外部的上拉電阻,則只能輸出低電平。

1.開漏輸出的這一特性一個明顯的優(yōu)勢就是可以很方便的調(diào)節(jié)輸出的電平,因為輸出電平完全由上拉電阻連接的電源電平?jīng)Q定。所以在需要進(jìn)行電平轉(zhuǎn)換的地方,非常適合使用開漏輸出。

2.開漏輸出的這一特性另一個好處在于可以實現(xiàn)"線與"功能,所謂的"線與"指的是多個信號線直接連接在一起,只有當(dāng)所有信號全部為高電平時,合在一起的總線為高電平;只要有任意一個或者多個信號為低電平,則總線為低電平。而推挽輸出就不行,如果高電平和低電平連在一起,會出現(xiàn)電流倒灌,損壞器件。

? ? GPIO_Mode_Out_PP推免輸出,推挽輸出結(jié)構(gòu)是由兩個MOS或者三極管收到互補(bǔ)控制的信號控制,兩個管子始終一個在導(dǎo)通,一個在截止,如下圖所示:

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

? ? ? 推挽輸出的最大特點是可以真正能真正的輸出高電平和低電平,在兩種電平下都具有驅(qū)動能力。所謂的驅(qū)動能力,就是指輸出電流的能力。推免式輸出既可以提高電路的負(fù)載能力,又能提高開關(guān)速度,且導(dǎo)通損耗小效率高。輸出既可以向負(fù)載灌電流(作為輸出),也可以從負(fù)載抽取電流(作為輸入)。

GPIO_Mode_AF_OD復(fù)用功能的推免輸出

GPIO_Mode_AF_PP復(fù)用功能的開漏輸出

GPIO_Toggle_INIT初始化代碼功能就是初始化PD0為普通推免輸出模式,通過PD0控制LED燈閃爍。其中GPIO_Init(GPIOA, &GPIO_InitStructure);這個函數(shù)的第一個參數(shù)GPIOD為宏定義,其相關(guān)的宏定義如下:((GPIO_TypeDef *) GPIOD_BASE),

GPIOD_BASE??????????? (APB2PERIPH_BASE + 0x1400)

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

? ? ? 對照官方手冊寄存器映射表如下圖所示,可以看到這里宏定義其實為GPIOD寄存器組的首地址。而第二個參數(shù)就是定義的結(jié)構(gòu)變量是用戶對GPIOD端口的參數(shù)設(shè)置的首地址,就是上面我們介紹的端口號、模式和速度。CH32單片機(jī)使用固件庫函數(shù)完成對外設(shè)初始化都是采用這種規(guī)范。

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

另外在初始化代碼中還有一句語句是RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);

? ? ? 這句代碼是開啟GPIOD的時鐘輸出功能,CH32系列單片機(jī)和STM32系列單片機(jī)一樣外設(shè)帶有時鐘輸出使能控制,如AHB總線時鐘、內(nèi)核時鐘、各種外設(shè)APB1、APB2外設(shè)、ADC時鐘等。因此要使用GPIOD模塊時,必須先使能對應(yīng)的時鐘。這里GPIOGPIOA、GPIOB、GPIOC、GPIOD)連接外設(shè)總線上APB2上,如下圖所示。因此通過以下代碼使能其時鐘。RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

在while循環(huán)中,通過GPIO_WriteBit函數(shù)對PD0進(jìn)行寫操作。

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

? ? ? ?ch32v30x_gpio.c文件中我們看到GPIO_WriteBit的源代碼,看芯片手冊,可知這里BSHRBCR分別為端口置位/復(fù)位寄存器。注意這兩個寄存器寫0沒有影響,寫1則會置為或者復(fù)位。

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

? ? ? 對于上面的代碼,我們也可以直接對寄存器訪問來編寫程序,寄存器直接操作如下:

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

本編文章對GPIO操作代碼分析就到這里。本項目用到IO口配置如下:

1.串口通信引腳配置

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

? ? ? 這里串口通信引腳使用的是PA2作為發(fā)送,PA3作為接收。所以PA2這個引腳配置為功能復(fù)用推免輸出。PA3作為接收引腳屬于輸入,這里配置為浮空輸入模式。

2.LED指示燈引腳配置

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

3.LCD顯示屏接口引腳

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)

4.DHT11相關(guān)引腳初始化

ch32v307,筆記,單片機(jī),stm32,物聯(lián)網(wǎng)文章來源地址http://www.zghlxwxcb.cn/news/detail-570373.html

到了這里,關(guān)于CH32V307環(huán)境參數(shù)在線監(jiān)測系統(tǒng)(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包