1+X傳感網(wǎng)備考中級備考實例解析:ADC采集串口發(fā)送

任務(wù)名稱:電池電量監(jiān)測應(yīng)用開發(fā)
任務(wù)要求:本任務(wù)要求設(shè)計一個可對電池電壓進(jìn)行監(jiān)測的應(yīng)用程序石洗,電路圖如圖所示幢泼。

供電電池的電壓為 3.3V,通過“PIN”端接入讲衫。電池電壓經(jīng)過分壓后缕棵,通
過“VM_ADC”與微控制器的 PA1 引腳相連,作為 ADC 采集輸入涉兽。
要求每隔 1 秒鐘對電池電壓進(jìn)行采集招驴,采集到的電壓值通過串行通信的方式發(fā)送至上位機(jī)顯示。


圖1:電池電量監(jiān)測電路原理圖

任務(wù)實施

1. 建立 STM32CubeMX 工程并生成初始 C 代碼

(1)建立工程存放的文件夾
在“STM32_WorkSpace”文件夾下新建文件夾“task5_Battery_ADC”用于保存本任務(wù)工程枷畏。
(2)新建 STM32CubeMX 工程
參考 相關(guān)內(nèi)容别厘。
(3)選擇 MCU 型號
選擇型號為 STM32F103VE 的微控制器。
(4)配置調(diào)試端口
將“PA13”引腳配置為 SWDIO 功能拥诡,“PA14”引腳配置為 SWCLK功能触趴;
(5)配置 MCU 時鐘樹
將 HCLK 配置為 72MHz,PCLK1 配置為 36MHz渴肉,PCLK2 配置為 72MHz冗懦。
(6)配置 ADC 外設(shè)的工作參數(shù)
標(biāo)號①:使用 PA1 引腳作為 ADC1 的輸入端口,展開“Pinout & Configuration”標(biāo)簽頁左側(cè)的“Analog”選項仇祭,選擇“ADC1”選項披蕉,勾選“IN1”復(fù)選框
標(biāo)號②:將 ADC 工作模式配置為“Independent mode(獨立模式)”:
標(biāo)號③處的配置說明如下:

  • “Data Alignment(數(shù)據(jù)對齊)”配置為“Right alignment(右對齊)”;
  • “Scan Conversion Mode(掃描轉(zhuǎn)換模式)”配置為“Disabled(禁用)”乌奇;
  • “Continuous Conversion Mode(連續(xù)轉(zhuǎn)換模式)”配置為“Disabled(禁
    用)”没讲;
  • “Discontinuous Conversion Mode(非連續(xù)轉(zhuǎn)換模式)”配置為“Disabled(禁
    用)”。
    標(biāo)號④處的配置說明如下
  • “Enable Regular Conversions(使能規(guī)則轉(zhuǎn)換)”配置為“Enabled(啟用)”礁苗;
  • “Number Of Conversion(轉(zhuǎn)換次數(shù))”配置為“1”;
  • “External Trigger Conversion Source(外部觸發(fā)源)”配置為“Regular
    Conversion launched by software(軟件觸發(fā)方式)”爬凑。
  • “Channel(通道號)”配置為“Channel 1(通道 1)”。
  • “Sampling Time(采樣時間)”配置為“71.5 Cycles(71.5 個周期)”寂屏。


    圖2: ADC 參數(shù)配置

切換到“Clock Configuration(時鐘配置)”標(biāo)簽,進(jìn)行 ADC 時鐘配置娜搂,如圖3 所示迁霎。
將“ADC Prescaler(ADC 分頻系數(shù))”配置為“6”(圖3 的標(biāo)號①處),則 ADC 的輸入時鐘為 12MHz(圖 3 的標(biāo)號②處)百宇。

圖3:ADC 時鐘配置

(7)配置 USART 外設(shè)的工作參數(shù)
展開“Pinout & Configuration”標(biāo)簽頁左側(cè)的“Connectivity”選項(圖 4的標(biāo)號①處)考廉,選擇“USART1”選項(圖4的標(biāo)號②處)。
圖 4中的其他配置過程說明如下
標(biāo)號③:將 USART1 的模式配置為“Asynchronous(異步)”携御。
標(biāo)號④:點擊“Parameter Settings(參數(shù)配置)”標(biāo)簽昌粤。
標(biāo)號⑤:配置 USART1 的“Baud Rate(波特率)”為 115200 Bits/s既绕。
標(biāo)號⑥:配置“Data Direction(數(shù)據(jù)方向)”為“Receive and Transmit(接收與發(fā)送)”。
標(biāo)號⑦:已配置好功能的引腳顯示涮坐。
圖4: USART1 的參數(shù)配置

(8)保存 STM32CubeMX 工程
點擊“File(文件)”菜單凄贩,選擇“Save Project(保存工程)”選項。然后定位到文件夾“D:\STM32_WorkSpace\task5_Battery_ADC”袱讹,點擊“確定”保存 STM32CubeMX 工程疲扎。
(9)生成初始 C 代碼工程
從容進(jìn)行“C 代碼生成”與“工程保存”的配置,最后點擊“GENERATECODE(生成代碼)”按鈕捷雕,生成電池電量監(jiān)測系統(tǒng)的初始 C 代碼工程椒丧;

2. 完善代碼

(1)定義 ADC 轉(zhuǎn)換結(jié)果存放變量
在“main.c”中輸入以下代碼:

uint16_t light_value =0;
float light =0.0;
char lightString[50]={0};

(2)編寫電壓采集與顯示代碼
在 while(1)主循環(huán)中輸入以下代碼

while (1)
  {
    /* USER CODE END WHILE */
        {
    /* USER CODE END WHILE */
      HAL_ADC_Start(&hadc1);
      HAL_ADC_PollForConversion(&hadc1,100);
      light_value =HAL_ADC_GetValue(&hadc1);
      light =(float)light_value/4096*3.3;
      sprintf(lightString,"采集到的光照值為:%.2f V",light);
      printf("%s\r\n",lightString);  
      HAL_Delay(10000);
    /* USER CODE BEGIN 3 */
  }

(3) USART.c 中添加代碼

int fputc(int ch, FILE *f)
{
    HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xFFFF);
    
    return ch;
    
}

(4) USART.h 中添加代碼:

#include <stdio.h>
#include "main.h"

實驗結(jié)果:

實驗結(jié)果串口助手顯示電壓采集
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市救巷,隨后出現(xiàn)的幾起案子壶熏,更是在濱河造成了極大的恐慌,老刑警劉巖浦译,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棒假,死亡現(xiàn)場離奇詭異,居然都是意外死亡管怠,警方通過查閱死者的電腦和手機(jī)淆衷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渤弛,“玉大人祝拯,你說我怎么就攤上這事∷希” “怎么了佳头?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長晴氨。 經(jīng)常有香客問我康嘉,道長,這世上最難降的妖魔是什么籽前? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任亭珍,我火速辦了婚禮,結(jié)果婚禮上枝哄,老公的妹妹穿的比我還像新娘肄梨。我一直安慰自己,他們只是感情好挠锥,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布众羡。 她就那樣靜靜地躺著,像睡著了一般蓖租。 火紅的嫁衣襯著肌膚如雪粱侣。 梳的紋絲不亂的頭發(fā)上羊壹,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音齐婴,去河邊找鬼油猫。 笑死,一個胖子當(dāng)著我的面吹牛尔店,可吹牛的內(nèi)容都是我干的眨攘。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼嚣州,長吁一口氣:“原來是場噩夢啊……” “哼鲫售!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起该肴,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤情竹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后匀哄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秦效,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年涎嚼,在試婚紗的時候發(fā)現(xiàn)自己被綠了阱州。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡法梯,死狀恐怖苔货,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情立哑,我是刑警寧澤夜惭,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站铛绰,受9級特大地震影響诈茧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捂掰,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一敢会、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧这嚣,春花似錦鸥昏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敛腌。三九已至卧土,卻和暖如春惫皱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尤莺。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工旅敷, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颤霎。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓媳谁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親友酱。 傳聞我的和親對象是個殘疾皇子晴音,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容