久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4358|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

STM32 ADC的單次采樣與電壓換算(基于HAL庫CubeMX與KEIL協(xié)調(diào)開發(fā))

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
在STM32F103ZET6核心板進(jìn)行STM32應(yīng)用開發(fā),完成以下功能:
①將ADC_IN0設(shè)置為12位ADC,右對(duì)齊,啟用中斷。
②分別用查詢和中斷兩種方式,每個(gè)0.5S采樣一個(gè)ADC數(shù)據(jù)。
③將每次讀取到的ADC采樣值轉(zhuǎn)換為對(duì)應(yīng)的電壓值,發(fā)送到上位機(jī)。
④LED1作為采樣指示燈,在ADC轉(zhuǎn)換過程中亮,其余時(shí)間滅。
初接觸編程的小白,兩年電子生涯給我積累了雄厚的硬件基礎(chǔ),接觸編程到今年三月整整一年,51單片機(jī)到STM32,當(dāng)然肯定不是精通,51只是達(dá)到會(huì)用的程度,主要是通過51熟悉底層編程的思路,因?yàn)榈搅?2接觸底層的機(jī)會(huì)越來越少原因是太復(fù)雜有難度,現(xiàn)階段比賽需要沒有太多時(shí)間詳細(xì)的去學(xué)習(xí),所以沒接觸過32寄存器,普通的庫函數(shù)開發(fā)也沒接觸過直接上的HAL庫,想要在這個(gè)行業(yè)有點(diǎn)成績,忙完了比賽肯定是欠下的都需要補(bǔ)回來的,說實(shí)話一開始的時(shí)候挺絕望的,但是通過學(xué)習(xí)發(fā)現(xiàn)也不是個(gè)學(xué)不會(huì)的事,追夢(mèng)人共同加油!
ADC這個(gè)學(xué)過模電的應(yīng)該都對(duì)他特別熟悉,他真的是無處不在,嗯,關(guān)于什么是ADC,幾個(gè)重要的技術(shù)指標(biāo),我就不介紹硬件方面的知識(shí)了,這個(gè)是屬于常識(shí)性的東西必須得掌握的,不知道的度娘補(bǔ)課了,從STM32的資源說起。
我用的是STM32F103ZET6主控,它里面一共有3個(gè)12位逐次逼近型的ADC,ADC1 ADC2 ADC3,有18個(gè)測量通道,16+2,可測量16個(gè)外部個(gè)2個(gè)內(nèi)部信號(hào)(內(nèi)部溫度 內(nèi)部電壓),這個(gè)2只能接ADC1,然后AD轉(zhuǎn)換可以以單次,連續(xù),掃描和間接形式執(zhí)行,按照組織來分又分為注入組和規(guī)則組,結(jié)果存儲(chǔ)形式有左對(duì)齊和右對(duì)齊(建議),這些基本的東西反正我是記住,因?yàn)槲矣玫倪@個(gè)主控所以我記得比較明白,其他的我沒用過的我也不知道但是每學(xué)習(xí)一個(gè)都需要對(duì)你這個(gè)主控進(jìn)行把握正所謂知己知彼百戰(zhàn)百勝,不具體展開說反正我感覺東西不少,多用就逐漸記住了。
直接說STM32CubeMX關(guān)于ADC對(duì)配置,因?yàn)榈讓拥臇|西坦白講我說不明白,現(xiàn)在只是達(dá)到對(duì)外設(shè)會(huì)用的程度,我們進(jìn)行AD轉(zhuǎn)換肯定是要得到一個(gè)結(jié)果,HAL庫中進(jìn)行AD轉(zhuǎn)換結(jié)果讀取的方式有3種,我先介紹2種坦白講第三種DMA多線程同時(shí)采集的我還沒會(huì),等會(huì)了再補(bǔ)上。
1堵塞式AD轉(zhuǎn)換(查詢)
uint16_t ADC_Value = 0;
HAL_ADC_Start(&hadc);//啟動(dòng)哪一個(gè)AD轉(zhuǎn)換,通過這個(gè)函數(shù)告訴它
if(HAL_OK == HAL_ADC_PollForConversion(&handc,10))//轉(zhuǎn)換過程函數(shù)&handc轉(zhuǎn)換的AD,10為轉(zhuǎn)換超時(shí)時(shí)間
{
ADC0_Value = HAL_ADC_GetValue(&handc);//轉(zhuǎn)換成功后就讀取這個(gè)AD結(jié)果

}
2非阻塞式A/D轉(zhuǎn)換(中斷)
uint16_t ADC_Value = 0;
HAL_ADC_Start_IT(&hadc);//通過帶有中斷的函數(shù)啟動(dòng)AD轉(zhuǎn)換
void HAL_ADC_ConvCPltCallback(ADC_HandleTypeDef* hadc1);//進(jìn)入中斷回調(diào)函數(shù),讀取AD轉(zhuǎn)換值
{
ADC_Value = HAL_ADC_GetValue(&handc);
}
然后就可以來做開頭那個(gè)小題目了,開頭那個(gè)小題目還用到串口,這部分在這不介紹不會(huì)的先度娘吧有時(shí)間我在出一個(gè)串口的。
HAL庫配置使用CubeMX這個(gè)軟件具體配置我想偷個(gè)懶不想粘圖就是找到ADC1>INT0然后啟用NVIC開啟中斷,找到UART1->異步通訊->波特率9600也可以115200(和上位機(jī)同步)再打開LED的GPIO配置為OUT,初始電平H因?yàn)槲矣布脑颍_啟外部時(shí)鐘,配置時(shí)鐘樹,生成代碼,然后在KEIL中進(jìn)行個(gè)性化開發(fā)。
然后核心代碼已經(jīng)貼出。

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:898445 發(fā)表于 2021-7-22 23:23 | 只看該作者
想請(qǐng)問下,為什么轉(zhuǎn)換那邊是3300*value值而不是3.3(V)乘以value值呢
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 6080yy精品一区二区三区 | 插插宗合网| 色综合久 | 成人av一区 | 日韩免费av| 四虎影视1304t | 国产精品永久免费 | 国产a视频 | 国产综合久久久久久鬼色 | 日韩蜜桃视频 | 天天射中文 | 久久久久久久久久性 | 黄色免费看 | 国产成人免费网站 | 欧美性另类 | 超碰一区二区 | 中国一级特黄真人毛片 | 在线观看免费观看在线91 | 国产精品亚洲片在线播放 | 男女免费视频网站 | 欧美精品一区二区三区四区五区 | 国产成人精品免费视频 | 色综合色综合色综合 | 最近日韩中文字幕 | 在线观看av网站永久 | 国产一区二| 国产日韩精品在线 | 国产精品欧美大片 | 久久久国产精品一区 | 日本一区二区在线视频 | 亚洲成人精品国产 | 欧美一级在线 | 成人h免费观看视频 | www精品美女久久久tv | 干一干操一操 | 欧美精三区欧美精三区 | 日本亚洲精品 | 亚洲在线一区二区 | 黄色毛片免费 | 91精品一区二区三区久久久久 | 亚洲福利一区二区 |