CQ出版社セミナ "実習・Armマイコン内蔵ペリフェラルを活用するためのC++プログラミング" で使う外付け回路のテスト
Dependencies: mbed UIT_SetOutputPortType UIT_AQM1602 UIT_ADT7410
F446_ADDA/F446_Dac.cpp@0:8c850cf6285d, 2020-03-03 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Tue Mar 03 03:30:50 2020 +0000
- Revision:
- 0:8c850cf6285d
1
Who changed what in which revision?
User | Revision | Line number | New 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 |