STM32:AD変換値の取得
1.本日の内容
(1) STM32マイコン(nucleo f401RE)を使用して、AD変換値を取得する。
(2) 取得した値を、TrueStdioのデバッガで確認する。
・目次
2.内容
(1) やる内容の詳細
・STM32マイコン(nucleo f401RE)を使用して、AD変換を行う。
・AD変換をループし、AD変換値を取得し、変数に代入する。
・TrueStdioで、取得した値を確認する。
(2) 使用部品
個数 | 部品名 | 型番 |
---|---|---|
1 | USBケーブル | USBミニBタイプ |
1 | mbed(マイコンボード) | nucleo f401RE |
1 | ブレッドボード・ジャンパーワイヤ(オス-オス) | BBJ-65 |
(3) STM32CubeMXの設定、プログラムを出力
(a)使用ピンを設定
・PA0:ADC1_IN0
(b)使用するピンの名前を変更
・今回は特に何もしない。
(c)プログラムの出力
・Project Maagerを選択
・Project Nameにプログラムの名前を入力:ADC1
※スペース、空白文字、日本語を含めるとエラーになる場合があるので、使用しない。
・Project Location:プロジェクトを保存する場所
・Application Structure:Advanced (出力するフォルダの構成を選択)
・Toolchain/IDE:TrueSTUDIO(今回は、AtoricTrueStdioを使用するため)
(d)GENERATE CODEで、コードを出力
(e)Open pROJECTをクリックすると、AtricTrueStdioが自動的に起動される。
(4) AtricTrueStdioでプログラム作成
・AtricTrueStdioを起動
・インポート元のディレクトリをクリック
・CubeMXで作成した場所を指定
・フォルダーにADC1(作成したプロジェクトの名前)が表示
・チェックされているのを確認して、終了をクリック
(b) プログラムの書き込み
・トンカチマークをクリックして、ビルドする。
・エラーが出ないことを確認する。
・下記プログラムを記載する。
/* USER CODE BEGIN PV */ //ADCの値格納用変数定義 __IO uint32_t analogValue; /* USER CODE END PV */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ //ADCスタート HAL_ADC_Start(&hadc1); //AD変換が正しく処理終わり、1000ms以内に値が入るか if(HAL_ADC_PollForConversion(&hadc1,1000)==HAL_OK){ //AD変換の値をanalogValueに格納 analogValue = HAL_ADC_GetValue(&hadc1); } //ADC終了 HAL_ADC_Stop(&hadc1); } /* USER CODE END 3 */
(5) プログラムの説明
・AD変換の値を格納するための変数を宣言
・__IO:volatile変数
ここに、今回のことが書いてある。
今回は、CUbeMxの設定は説明していない。
CubeMXの設定については別途書く予定。
(6) デバックで、AD変換の値を確認
(a) 歯車マークで、プログラムを実行する。
(b)再生マークを押し、プログラムを実行
(c)ソースを選択し、analogValue を選択、右クリックする。
(d) Add Watch Expression・・・をクリックする。
(e) Expression to watchで、「analogValue」が入力されているので、
そのままOKを押す。
(f) 式というタブが出てきて、そこに、analogValueの値が表示されるようになる。
(g)このままだと、値は分からないので、breakする必要がある。
(breakポイントを仕掛けて、そこでプログラムが止まるようにする。)
(h)ソースに戻り、analogValueの一個したの}の所の左側をダブルクリックする。
(i)ブレークポイントが設定される。
(j)自動的に、ブレークポイントが処理されるときに、プログラムが止まる。
(k)式のValueの部分に、その時のanalogValueの値が入力される。
下記動画の7分頃を参考に
3.関連記事
・STM32マイコン_2(UART通信:TeraTermにHellow表示) - Project_OKI’s diary
・STM32マイコン_3(UART通信:複数文字送信) - Project_OKI’s diary
・STM32マイコン_4(NVICの設定内容) - Project_OKI’s diary
・STM32マイコン_5(スイッチ入力とLED点灯、消灯) - Project_OKI’s diary
その他:
・CubeIDEの使い方(起動~デバック実行) - Project_OKI’s diary
・SPI通信とは - Project_OKI’s diary
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary