出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数. このライブラリを登録した際のプログラム: Demo_SetOutputPortType. Global functions for setting the output port bit open-drain or push-pull.

Dependents:   Demo_SetOutputPortType Mbed2_ConnectTestAll

Committer:
MikamiUitOpen
Date:
Fri May 19 13:42:00 2017 +0000
Revision:
3:ff33bd585670
Parent:
2:faa854cf5f0e
Child:
4:0f2bef62434a
4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:7b86a8a8aabd 1 //---------------------------------------------------------------------------------------
MikamiUitOpen 3:ff33bd585670 2 // 出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数
MikamiUitOpen 3:ff33bd585670 3 // (Global functions for setting the output port bit open-drain or push-pull)
MikamiUitOpen 0:7b86a8a8aabd 4 // SetOpenDrain() オープンドレインに設定 (Set open-drain)
MikamiUitOpen 0:7b86a8a8aabd 5 // SetPushPull() プッシュプルに設定 (Set push-pull)
MikamiUitOpen 3:ff33bd585670 6 // Nucleo 用(For Nucleo)
MikamiUitOpen 0:7b86a8a8aabd 7 //
MikamiUitOpen 3:ff33bd585670 8 // "PA_0", "PB_0", "PC_0" などの定義:PinNames.h
MikamiUitOpen 3:ff33bd585670 9 // "PA_0", "PB_0", "PC_0", etc. are defined in PinNames.h.
MikamiUitOpen 0:7b86a8a8aabd 10 //
MikamiUitOpen 3:ff33bd585670 11 // この関数を使う前に,使用する GPIO ポートは使える状態に設定しておくこと
MikamiUitOpen 3:ff33bd585670 12 // (Before using this function, the GPIO port must be enabled.)
MikamiUitOpen 0:7b86a8a8aabd 13 //
MikamiUitOpen 3:ff33bd585670 14 // PinName 型変数の 4 ~ 7 ビット:ポート番号(0 = A, 1 = B, ・・・・・)
MikamiUitOpen 3:ff33bd585670 15 // PinName 型変数の 0 ~ 3 ビット:ピン番号(0 ~ 15)
MikamiUitOpen 3:ff33bd585670 16 //
MikamiUitOpen 3:ff33bd585670 17 // 2017/05/19, Copyright (c) 2017 MIKAMI, Naoki
MikamiUitOpen 0:7b86a8a8aabd 18 //---------------------------------------------------------------------------------------
MikamiUitOpen 0:7b86a8a8aabd 19
MikamiUitOpen 0:7b86a8a8aabd 20 #include "mbed.h"
MikamiUitOpen 0:7b86a8a8aabd 21
MikamiUitOpen 0:7b86a8a8aabd 22 namespace Mikami
MikamiUitOpen 0:7b86a8a8aabd 23 {
MikamiUitOpen 3:ff33bd585670 24 // 出力ポートをオープンドレインに設定する
MikamiUitOpen 3:ff33bd585670 25 void SetOpenDrain(PinName p0, PinName p1 = NC, PinName p2 = NC,
MikamiUitOpen 3:ff33bd585670 26 PinName p3 = NC, PinName p4 = NC, PinName p5 = NC,
MikamiUitOpen 3:ff33bd585670 27 PinName p6 = NC, PinName p7 = NC, PinName p8 = NC,
MikamiUitOpen 3:ff33bd585670 28 PinName p9 = NC, PinName p10 = NC, PinName p11 = NC,
MikamiUitOpen 3:ff33bd585670 29 PinName p12 = NC, PinName p13 = NC, PinName p14 = NC,
MikamiUitOpen 3:ff33bd585670 30 PinName p15 = NC)
MikamiUitOpen 0:7b86a8a8aabd 31 {
MikamiUitOpen 3:ff33bd585670 32 PinName pins[16] = { p0, p1, p2, p3, p4, p5, p6, p7,
MikamiUitOpen 3:ff33bd585670 33 p8, p9, p10, p11, p12, p13, p14, p15};
MikamiUitOpen 2:faa854cf5f0e 34
MikamiUitOpen 0:7b86a8a8aabd 35 for (int n=0; n<16; n++)
MikamiUitOpen 0:7b86a8a8aabd 36 {
MikamiUitOpen 0:7b86a8a8aabd 37 if (pins[n] == NC) break;
MikamiUitOpen 3:ff33bd585670 38 uint32_t address = (STM_PORT(pins[n]) << 10) + GPIOA_BASE;
MikamiUitOpen 3:ff33bd585670 39 ((GPIO_TypeDef *)address)->OTYPER |= 1 << STM_PIN(pins[n]);
MikamiUitOpen 0:7b86a8a8aabd 40 }
MikamiUitOpen 0:7b86a8a8aabd 41 }
MikamiUitOpen 0:7b86a8a8aabd 42
MikamiUitOpen 3:ff33bd585670 43 // 出力ポートをプッシュプルに設定する
MikamiUitOpen 3:ff33bd585670 44 void SetPushPull(PinName p0, PinName p1 = NC, PinName p2 = NC,
MikamiUitOpen 3:ff33bd585670 45 PinName p3 = NC, PinName p4 = NC, PinName p5 = NC,
MikamiUitOpen 3:ff33bd585670 46 PinName p6 = NC, PinName p7 = NC, PinName p8 = NC,
MikamiUitOpen 3:ff33bd585670 47 PinName p9 = NC, PinName p10 = NC, PinName p11 = NC,
MikamiUitOpen 3:ff33bd585670 48 PinName p12 = NC, PinName p13 = NC, PinName p14 = NC,
MikamiUitOpen 3:ff33bd585670 49 PinName p15 = NC)
MikamiUitOpen 0:7b86a8a8aabd 50 {
MikamiUitOpen 3:ff33bd585670 51 PinName pins[16] = { p0, p1, p2, p3, p4, p5, p6, p7,
MikamiUitOpen 3:ff33bd585670 52 p8, p9, p10, p11, p12, p13, p14, p15};
MikamiUitOpen 2:faa854cf5f0e 53
MikamiUitOpen 0:7b86a8a8aabd 54 for (int n=0; n<16; n++)
MikamiUitOpen 0:7b86a8a8aabd 55 {
MikamiUitOpen 0:7b86a8a8aabd 56 if (pins[n] == NC) break;
MikamiUitOpen 3:ff33bd585670 57 uint32_t address = (STM_PORT(pins[n]) << 10) + GPIOA_BASE;
MikamiUitOpen 3:ff33bd585670 58 ((GPIO_TypeDef *)address)->OTYPER &= ~(1 << STM_PIN(pins[n]));
MikamiUitOpen 0:7b86a8a8aabd 59 }
MikamiUitOpen 0:7b86a8a8aabd 60 }
MikamiUitOpen 0:7b86a8a8aabd 61 }