娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

一、認(rèn)識(shí)ADC兼進(jìn)一步看懂STM的庫

ADC是多少位的?

12位

ADC有多少個(gè)?

1個(gè)、2個(gè)或多至3個(gè),視不同的器件而不同;每個(gè)又有多個(gè)通道。

關(guān)于通道的名堂:

10.3.3 通道選擇

有16個(gè)多路通道。可以把轉(zhuǎn)換分成兩組:規(guī)則的和注入的。在任意多個(gè)通道上以任意順序進(jìn)行的一系列轉(zhuǎn)換構(gòu)成成組轉(zhuǎn)換。例如,可以如下順序完成轉(zhuǎn)換:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。

● 規(guī)則組由多達(dá)16個(gè)轉(zhuǎn)換組成。規(guī)則通道和它們的轉(zhuǎn)換順序在ADC_SQRx寄存器中選擇。規(guī)則組中轉(zhuǎn)換的總數(shù)寫入ADC_SQR1寄存器的L[3:0]位中。

● 注入組由多達(dá)4個(gè)轉(zhuǎn)換組成。注入通道和它們的轉(zhuǎn)換順序在ADC_JSQR寄存器中選擇。注入組里的轉(zhuǎn)換總數(shù)目必須寫入ADC_JSQR寄存器的L[1:0]位中。


它們有什么區(qū)別:

不同的組轉(zhuǎn)換后保存數(shù)據(jù)的地方不一樣,產(chǎn)生的中斷標(biāo)志不一樣。

在掃描模式下,規(guī)則組會(huì)有能力把各通道數(shù)據(jù)通過DMA傳給SRAM,而注入組的數(shù)據(jù)總是存在在ADC_JDRx中。


還有其他的一些區(qū)別,這里暫不一一羅列。

ST為什么這么樣來設(shè)計(jì)AD轉(zhuǎn)換,肯定是有理由的,但是我不知道,因此,我也就難以深入地理解AD轉(zhuǎn)換的各種模式。這也就是說,對(duì)于知識(shí)的理解,要把它放在其應(yīng)用背景中去學(xué)習(xí)才能學(xué)得好。因此,其他知識(shí)積累得越多,學(xué)起來也就越快,這也就是所謂的“功底”問題。某人功底深厚,意味著他見多識(shí)廣,遇到的事情多,能夠很快找到處理某件事情的“原型”。當(dāng)然,也有一些人抽象學(xué)習(xí)能力極強(qiáng),就算找不到“原型”,他也能學(xué)得很好。基本上,這類人的科學(xué)素養(yǎng)更高一些,在工程師、工科類學(xué)生中并不多見。


閑話少說,下面來看怎么樣來使用AD轉(zhuǎn)換器

以一段源程序為例分別來解讀,同時(shí)進(jìn)一步理解STM32中有關(guān)符號(hào)的含義,相信以后再讀庫源程序,定能更上一層樓。


為看得清楚一些,以下代碼用一種顏色表示。

/* ADC1 開始準(zhǔn)備配置*/

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;

/*設(shè)置ADC-》CR1的19:16,確定ADC工作模式,一共有10種工作模式

#define ADC_Mode_Independent ((uint32_t)0x00000000) 0000:獨(dú)立模式

#define ADC_Mode_RegInjecSimult ((uint32_t)0x00010000) 0001:混合的同步規(guī)則+注入同步模式

#define ADC_Mode_RegSimult_AlterTrig ((uint32_t)0x00020000) 0010:混合的同步規(guī)則+交替觸發(fā)模式

#define ADC_Mode_InjecSimult_FasTInterl ((uint32_t)0x00030000) 0011:混合同步注入+快速交替模式

#define ADC_Mode_InjecSimult_SlowInterl ((uint32_t)0x00040000) 0100:混合同步注入+慢速交替模式

#define ADC_Mode_InjecSimult ((uint32_t)0x00050000) 0101:注入同步模式

#define ADC_Mode_RegSimult ((uint32_t)0x00060000) 0110:規(guī)則同步模式

#define ADC_Mode_FasTInterl ((uint32_t)0x00070000) 0111:快速交替模式

#define ADC_Mode_SlowInterl ((uint32_t)0x00080000) 1000:慢速交替模式

#define ADC_Mode_AlterTrig ((uint32_t)0x00090000) 1001:交替觸發(fā)模式

*/

ADC_InitStructure.ADC_ScanConvMode = ENABLE;

/* ADC_ScanConvMode在stm32f10x_adc.h中定義如下:

alState ADC_ScanConvMode;

這個(gè)參數(shù)用來指定轉(zhuǎn)換是掃描(多通道模式)還是單個(gè)轉(zhuǎn)換(單通道模式),該參數(shù)可以被設(shè)置為DISABLE或者ENABLE。


在數(shù)據(jù)手冊(cè)中,SCAN位是這樣描述的:掃描模式

該位由軟件設(shè)置和清除,用于開啟或關(guān)閉掃描模式。在掃描模式中,由ADC_SQRx或ADC_JSQRx寄存器選中的通道被轉(zhuǎn)換。


0:關(guān)閉掃描模式

1:使用掃描模式

注:如果分別設(shè)置了EOCIE或JEOCIE位,只在最后一個(gè)通道轉(zhuǎn)換完畢才會(huì)產(chǎn)生EOC或JEOC中斷。

這樣,如果一次需要對(duì)多個(gè)通道進(jìn)行轉(zhuǎn)換,這位就必須設(shè)置為ENABLE。

*/

ADC_InitStructure.ADC_ConTInuousConvMode = ENABLE;

/* alState ADC_ConTInuousConvMode;

這個(gè)參數(shù)用來指定轉(zhuǎn)換是連續(xù)進(jìn)行還是單次進(jìn)行,它可以設(shè)置為ENABLE或者DISABLE。

這兩個(gè)參數(shù)中出現(xiàn)了alState數(shù)據(jù)類型,那么它是什么呢,順滕摸瓜,可以看到它的的定義如下:

typedef enum {DISABLE = 0, ENABLE = !DISABLE} alState;

因此,它相當(dāng)于是一個(gè)位變量,我的理解,DISPABLE=0這個(gè)沒有問題,ENABLE=!DISABLE是否應(yīng)該確切的是1??否則下面的設(shè)置就會(huì)有問題。

用這兩個(gè)符號(hào)來對(duì)寄存器中的位進(jìn)行設(shè)置的話,還需要提供位置信息,如下面的代碼所示:

tmpreg1 |= (uint32_t)(ADC_InitStruct-》ADC_DataAlign | ADC_InitStruct-》ADC_ExternalTrigConv |

((uint32_t)ADC_InitStruct-》ADC_ContinuousConvMode 《《 1));

這個(gè)《《1就是位置信息,CONT是CON2寄存器的位1

這樣,我們看STM32的庫又能多看懂一點(diǎn)了。

用于設(shè)定CON2的CONT位(位1):是否連續(xù)轉(zhuǎn)換

該位由軟件設(shè)置和清除。如果設(shè)置了此位,則轉(zhuǎn)換將連續(xù)進(jìn)行直到該位被清除。

關(guān)鍵字:深度解讀  STM32  數(shù)據(jù)保存  毀滅 引用地址:深度解讀STM32數(shù)據(jù)保存與毀滅

上一篇:一文看懂STM32單片機(jī)和51單片機(jī)區(qū)別
下一篇:基于STM32芯片的一款智能臺(tái)燈

推薦閱讀

親,如果我們網(wǎng)購的寶貝由機(jī)器人分裝將是什么景象?總指揮機(jī)器人給上百個(gè)機(jī)器人小兵分發(fā)任務(wù),小兵有條不紊地將寶貝送到通往下一站的貨車。隨著智能化物流機(jī)器人的崛起,物流“無人化”正一步步成為可能。哈工大機(jī)器人集團(tuán)子公司中導(dǎo)機(jī)器人科技有限公司近期推出四款自主研發(fā)的一整套智慧物流系統(tǒng),“物流小將”從規(guī)劃路徑、分揀、搬運(yùn)等方面展露著“十八般...
在機(jī)器人2.0時(shí)代,傳感器的地位越來越重要,成為機(jī)器人功能增強(qiáng)和效率提升的關(guān)鍵部件。為了促進(jìn)機(jī)器人技術(shù)在制造業(yè)中應(yīng)用,前瞻性的行業(yè)專家做了很多努力,包括在傳感技術(shù)上的不斷創(chuàng)新,從而推動(dòng)了機(jī)器人傳感器市場的發(fā)展。目前,工業(yè)機(jī)器人在制造業(yè)的應(yīng)用場景常見于物料搬運(yùn)、焊接、拋光和檢查等工藝上,能夠降低工廠勞動(dòng)成本和提升效率,最終獲得最大的...
#include <msp430F5529.h> void IO_Init();void InitADC();unsigned int GetAD(char channel);void light_Compare(int templight);int counter=0; //中斷計(jì)數(shù)器參數(shù),單位秒 /** * main.c */ int main(void){ IO_Init(); //IO初始化 InitADC(); ...

史海拾趣

問答坊 | AI 解惑

國產(chǎn)示波器品牌大PK!

大家每天都會(huì)用到示波器吧,現(xiàn)在越來越多的國產(chǎn)品牌在沖擊著國際品牌的市場,作為工程師,你肯定也是用過國產(chǎn)品牌的示波器吧,有什么心得體會(huì)呢?或者你最喜歡哪個(gè)品牌,來,投上你寶貴的一票! 【參與投票者,均可獲得20枚芯幣的獎(jiǎng)勵(lì)】 【詳 ...…

查看全部問答∨

JFFS2移植到ST7101/OS21平臺(tái)的問題

硬件平臺(tái): ST7101 FLASH:    NOR 8M 操作系統(tǒng): OS21 需求:    將Linux下的JFFS2文件系統(tǒng)移植到上面平臺(tái)。 問題:       1. 由于操作系統(tǒng)平臺(tái)不同,VFS提供的接口也不同,因此不能像在Linux ...…

查看全部問答∨

uclibc和busybox浮點(diǎn)數(shù)沖突

uclibc和busybox浮點(diǎn)數(shù)沖突 編譯uclinux時(shí),報(bào)浮點(diǎn)數(shù)出錯(cuò): uclibc使用硬浮點(diǎn)數(shù),busybox使用的軟浮點(diǎn)數(shù), 交叉編譯鏈:arm-linux-tools-20061213.tar.gz uclibc:0.9.27 busybox:1.0 錯(cuò)誤信息如下: /usr/local/lib/gcc/arm-linux/3.4.4/. ...…

查看全部問答∨

請(qǐng)問什么是“模擬隔離放大器”?“模擬隔離放大器”就是“隔離放大器”嗎

各位大俠:        請(qǐng)問什么是“模擬隔離放大器”?“模擬隔離放大器”就是“隔離放大器”嗎?它的原理和作用是什么?感激涕零…

查看全部問答∨

EVC的使用方法各位大俠有沒有,怎么創(chuàng)建一個(gè)新文件?

EVC的使用方法各位大俠有沒有,怎么創(chuàng)建一個(gè)新文件?工程,工作區(qū)?有什么區(qū)別呢?…

查看全部問答∨

一個(gè)嵌入式初學(xué)者引發(fā)的思考(jesse談自己的經(jīng)驗(yàn)體會(huì))

我目前再跟幾個(gè)朋友合伙一起做點(diǎn)開源的硬件小產(chǎn)品,隨后就成立了一個(gè)論壇,也就是現(xiàn)在的armjishu.com,那時(shí)候我們?cè)谝黄鹕塘恐趺醋屛覀兊膹V大初學(xué)者能夠更快的進(jìn)入到嵌入式領(lǐng)域,我們琢磨了很長時(shí)間,怎么樣做到,后來決定做一款嵌入式硬件產(chǎn)品出 ...…

查看全部問答∨

EVC 中char[]轉(zhuǎn)換為unsigned short

如何將char[]轉(zhuǎn)換為unsigned short,例如,我在Edit中寫了一個(gè)10進(jìn)制的數(shù),通過轉(zhuǎn)換為16進(jìn)制的,然后附給一個(gè)unsigned short變量。如何做? char buffer[80]; uint Temp; sprintf(buffer, \"%x\", M_Edit1); Temp = buffer;?????// 這里該如何 ...…

查看全部問答∨

新手求教PLL

我用的是一款開發(fā)板,器件型號(hào)是Cyclone II: EP2C5Q208C8,PLL從外部引腳輸入30M時(shí)鐘,輸出三個(gè)時(shí)鐘分別設(shè)置為30M,120M,180M,PLL工作模式:Normal,三個(gè)輸出時(shí)鐘相位偏移都是0。 使用Signaltap觀察時(shí),采樣時(shí)鐘120M,發(fā)現(xiàn)輸出的30M時(shí)鐘相對(duì)輸入 ...…

查看全部問答∨

關(guān)于用狀態(tài)機(jī)設(shè)計(jì)秒表時(shí)遇見的問題(求教)

做個(gè)秒表 0-59 flow_out flow_in 連接時(shí) 的時(shí)序仿真結(jié)果如下flow_out flow_in 不連接時(shí) 的時(shí)序仿真結(jié)果如下請(qǐng)問為什么 flow_out 和flow_in 連接時(shí) 的結(jié)果里的 flow_out 是在low_num 為0001 時(shí) 有輸出1而  flow_out和 flow_in ...…

查看全部問答∨

PIC16F877A AD轉(zhuǎn)換

AD轉(zhuǎn)換 數(shù)碼管顯示數(shù)值一直遞減 要拔掉電源 從新開始從4.99幾v開始遞減 模擬輸入是從同一板上的5V穩(wěn)壓管接出來通過4052 接到AN0上的 uint signed AD() {  uint adc=0;  ADCON1=0x8e; ADCON0=0x81; ADGO=1; delay( ...…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 靖宇县| 积石山| 大化| 杭锦旗| 屯昌县| 开化县| 永泰县| 广德县| 墨竹工卡县| 广州市| 江山市| 井陉县| 阿拉善右旗| 治县。| 新乡县| 乌拉特前旗| 宁都县| 郸城县| 青田县| 麦盖提县| 张家川| 南丰县| 赣榆县| 六枝特区| 东阳市| 西林县| 大石桥市| 东乡县| 安庆市| 濮阳市| 巨鹿县| 浙江省| 望都县| 新晃| 香河县| 盐边县| 太康县| 信阳市| 城步| 尼勒克县| 乐至县|