CQ出版社セミナ "実習・Armマイコン内蔵ペリフェラルを活用するためのC++プログラミング" で使う外付け回路のテスト

Dependencies:   mbed UIT_SetOutputPortType UIT_AQM1602 UIT_ADT7410

Committer:
MikamiUitOpen
Date:
Thu Apr 02 03:47:14 2020 +0000
Revision:
2:3f2be675f975
Parent:
0:8c850cf6285d
3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:8c850cf6285d 1 //--------------------------------------------------------
MikamiUitOpen 0:8c850cf6285d 2 // STM32F446 内蔵の DAC 用のクラス
MikamiUitOpen 0:8c850cf6285d 3 // 出力端子: A2 (PA_4)
MikamiUitOpen 0:8c850cf6285d 4 //
MikamiUitOpen 0:8c850cf6285d 5 // 2020/02/18, Copyright (c) 2020 MIKAMI, Naoki
MikamiUitOpen 0:8c850cf6285d 6 //--------------------------------------------------------
MikamiUitOpen 0:8c850cf6285d 7
MikamiUitOpen 0:8c850cf6285d 8 #include "F446_Dac.hpp"
MikamiUitOpen 0:8c850cf6285d 9
MikamiUitOpen 0:8c850cf6285d 10 namespace Mikami
MikamiUitOpen 0:8c850cf6285d 11 {
MikamiUitOpen 0:8c850cf6285d 12 // コンストラクタ, A2 に接続される CH1 のみを有効にする
MikamiUitOpen 0:8c850cf6285d 13 DacF446::DacF446() : myDac_(DAC)
MikamiUitOpen 0:8c850cf6285d 14 {
MikamiUitOpen 0:8c850cf6285d 15 SetGPIO(); // GPIO の設定
MikamiUitOpen 0:8c850cf6285d 16
MikamiUitOpen 0:8c850cf6285d 17 __HAL_RCC_DAC_CLK_ENABLE(); // DAC にクロックを供給する
MikamiUitOpen 0:8c850cf6285d 18 // __HAL_RCC_DAC_CLK_ENABLE() の定義:stm32f4xx_hal_rcc_ex.h
MikamiUitOpen 0:8c850cf6285d 19
MikamiUitOpen 0:8c850cf6285d 20 myDac_->CR = DAC_CR_EN1;
MikamiUitOpen 0:8c850cf6285d 21 }
MikamiUitOpen 0:8c850cf6285d 22
MikamiUitOpen 0:8c850cf6285d 23 // DA 変換器に関係のある GPIO の設定
MikamiUitOpen 0:8c850cf6285d 24 void DacF446::SetGPIO()
MikamiUitOpen 0:8c850cf6285d 25 {
MikamiUitOpen 0:8c850cf6285d 26 static const PinName PIN = A2;
MikamiUitOpen 0:8c850cf6285d 27 // 各シンボルは stm32f4xx_hal_gpio.h で定義されている
MikamiUitOpen 0:8c850cf6285d 28 // MODIFY_REG() マクロは stm32f4xx.h で定義されている
MikamiUitOpen 0:8c850cf6285d 29 uint32_t nShift = STM_PIN(PIN) << 1;
MikamiUitOpen 0:8c850cf6285d 30 uint32_t moder = GPIO_MODE_ANALOG << nShift;
MikamiUitOpen 0:8c850cf6285d 31 uint32_t mask = 0x03 << nShift;
MikamiUitOpen 0:8c850cf6285d 32
MikamiUitOpen 0:8c850cf6285d 33 if (__HAL_RCC_GPIOA_IS_CLK_DISABLED())
MikamiUitOpen 0:8c850cf6285d 34 __HAL_RCC_GPIOA_CLK_ENABLE(); // GPIOA にクロックを供給
MikamiUitOpen 0:8c850cf6285d 35 MODIFY_REG(GPIOA->MODER, mask, moder); // GPIOA のピンを設定
MikamiUitOpen 0:8c850cf6285d 36 }
MikamiUitOpen 0:8c850cf6285d 37 }
MikamiUitOpen 0:8c850cf6285d 38