<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

STM32之ADC

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò ) 收藏

ADC是多少位的?

12位
ADC有多少個(gè)?
1個(gè)、2個(gè)或多至3個(gè),視不同的器件而不同;每個(gè)又有多個(gè)通道。
關(guān)于通道的名堂:
10.3.3通道選擇
有16個(gè)多路通道??梢园艳D換分成兩組:規則的和注入的。在任意多個(gè)通道上以任意順序進(jìn)行的一系列轉換構成成組轉換。例如,可以如下順序完成轉換:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。
規則組由多達16個(gè)轉換組成。規則通道和它們的轉換順序在A(yíng)DC_SQRx寄存器中選擇。規則組中轉換的總數寫(xiě)入ADC_SQR1寄存器的L[3:0]位中。
注入組由多達4個(gè)轉換組成。注入通道和它們的轉換順序在A(yíng)DC_JSQR寄存器中選擇。注入組里的轉換總數目必須寫(xiě)入ADC_JSQR寄存器的L[1:0]位中。
它們有什么區別:
不同的組轉換后保存數據的地方不一樣,產(chǎn)生的中斷標志不一樣。
在掃描模式下,規則組會(huì )有能力把各通道數據通過(guò)DMA傳給SRAM,而注入組的數據總是存在在A(yíng)DC_JDRx中。
還有其他的一些區別,這里暫不一一羅列。
ST為什么這么樣來(lái)設計AD轉換,肯定是有理由的,但是我不知道,因此,我也就難以深入地理解AD轉換的各種模式。這也就是說(shuō),對于知識的理解,要把它放在其應用背景中去學(xué)習才能學(xué)得好。因此,其他相關(guān)知識積累得越多,這里學(xué)起來(lái)也就越快,這也就是所謂的“功底”問(wèn)題。某人功底深厚,意味著(zhù)他見(jiàn)多識廣,遇到的事情多,能夠很快找到處理某件事情的“原型”。當然,也有一些人抽象學(xué)習能力極強,就算找不到“原型”,他也能學(xué)得很好?;旧?,這類(lèi)人的科學(xué)素養更高一些,在工程師、工科類(lèi)學(xué)生中并不多見(jiàn)。
閑話(huà)少說(shuō),下面來(lái)看怎么樣來(lái)使用AD轉換器?
以一段源程序為例分別來(lái)解讀,同時(shí)進(jìn)一步理解STM32中有關(guān)符號的含義,相信以后再讀庫源程序,定能更上一層樓。
為看得清楚一些,以下代碼用藍色表示,而在這段代碼的注釋中插入的一些代碼則用紅色表示。從數據手冊上摘錄下來(lái)的內容則用黃底來(lái)表示(本來(lái)數據手冊摘錄部分用貼圖是最好的,但是發(fā)表博文時(shí)貼圖太痛苦了,,,偷點(diǎn)懶)。
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);
通過(guò)前面一系列的設置,終于可以執行ADC_Init函數了。執行完了還不行,還要指定通道轉換順序,采樣時(shí)間等,接下繼續。
ADC_RegularChannelConfig(ADC1, ADC_Channel_15, 1, ADC_SampleTime_55Cycles5);
if (Rank < 7)//這個(gè)Rand就是第三個(gè)參數
{
tmpreg1 = ADCx->SQR3;
tmpreg2 = SQR3_SQ_Set << (5 * (Rank - 1));
SQR3的值如下:
//#define SQR3_SQ_Set((uint32_t)0x0000001F)
之所以用5去乘,看下圖中的表格:ADC_SQ3中SQ1~SQ6每個(gè)都是占5位。
這下理解了:如果這個(gè)Rank是1,那么tmpreg2這個(gè)變量第[4:0]這5位將會(huì )是11111(即SQR3_SQ_Set的初始值:0x0000001f),如果Rank是2,那么tmpreg2這個(gè)變量的第[9:5]將會(huì )是11111,即tmpreg2將等于:0x000003e0,依此類(lèi)推。
tmpreg1 &= ~tmpreg2;
tmpreg2 = (uint32_t)ADC_Channel << (5 * (Rank - 1));
tmpreg1 |= tmpreg2;
ADCx->SQR3 = tmpreg1;
}

*/
第四個(gè)參數是采樣時(shí)間設定,代碼如下:
tmpreg2 = (uint32_t)ADC_SampleTime << (3 * ADC_Channel);
tmpreg1 |= tmpreg2;
ADCx->SMPR2 = tmpreg1;

接下來(lái)還有兩件事要做,第一件是允許DMA傳輸
ADC_DMACmd(ADC1, ENABLE);
第二件是打開(kāi)ADC1開(kāi)始轉換。
ADC_Cmd(ADC1, ENABLE);
這兩件事情都不麻煩,所以就不再分析了。
至此一次ADC轉換配置完畢。很麻煩......也許功能強大的副產(chǎn)品就是麻煩吧,沒(méi)有辦法。



關(guān)鍵詞: STM32AD

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>