出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数の使用例. Example of global functions for setting the output port bits as open-drain or push-pull.
Dependencies: mbed UIT_SetOutputPortType
main.cpp@4:b8b4d42fa9fd, 2017-05-19 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Fri May 19 13:42:26 2017 +0000
- Revision:
- 4:b8b4d42fa9fd
- Parent:
- 3:f9dc19059c3b
- Child:
- 6:8ae23c39581a
5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:09d27b602681 | 1 | //--------------------------------------------------------------------------------- |
MikamiUitOpen | 0:09d27b602681 | 2 | // 出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数の使用例 |
MikamiUitOpen | 0:09d27b602681 | 3 | // (Example of global functions for setting the output port bit |
MikamiUitOpen | 0:09d27b602681 | 4 | // as open-drain or push-pull) |
MikamiUitOpen | 0:09d27b602681 | 5 | // |
MikamiUitOpen | 4:b8b4d42fa9fd | 6 | // 2017/05/19, Copyright (c) 2017 MIKAMI, Naoki |
MikamiUitOpen | 0:09d27b602681 | 7 | //--------------------------------------------------------------------------------- |
MikamiUitOpen | 0:09d27b602681 | 8 | |
MikamiUitOpen | 0:09d27b602681 | 9 | #include "SetOutputPortType.hpp" |
MikamiUitOpen | 0:09d27b602681 | 10 | using namespace Mikami; |
MikamiUitOpen | 0:09d27b602681 | 11 | |
MikamiUitOpen | 0:09d27b602681 | 12 | // ユーザ・ボタン(青のボタン)を押すまで待つ関数 |
MikamiUitOpen | 0:09d27b602681 | 13 | void WaitButton(char str[]) |
MikamiUitOpen | 0:09d27b602681 | 14 | { |
MikamiUitOpen | 3:f9dc19059c3b | 15 | DigitalIn uButton(USER_BUTTON); |
MikamiUitOpen | 0:09d27b602681 | 16 | printf(str); |
MikamiUitOpen | 0:09d27b602681 | 17 | printf("\r\nPush blue button"); |
MikamiUitOpen | 3:f9dc19059c3b | 18 | #ifdef STM32F7 |
MikamiUitOpen | 3:f9dc19059c3b | 19 | while (uButton != 1) {} |
MikamiUitOpen | 3:f9dc19059c3b | 20 | #else |
MikamiUitOpen | 3:f9dc19059c3b | 21 | while (uButton == 1) {} |
MikamiUitOpen | 3:f9dc19059c3b | 22 | #endif |
MikamiUitOpen | 0:09d27b602681 | 23 | wait(0.5); |
MikamiUitOpen | 0:09d27b602681 | 24 | } |
MikamiUitOpen | 0:09d27b602681 | 25 | |
MikamiUitOpen | 0:09d27b602681 | 26 | int main() |
MikamiUitOpen | 0:09d27b602681 | 27 | { |
MikamiUitOpen | 3:f9dc19059c3b | 28 | BusOut bus(D2, D3, D4, D5, D6, D7, D8); |
MikamiUitOpen | 3:f9dc19059c3b | 29 | |
MikamiUitOpen | 0:09d27b602681 | 30 | // MODER I/O ポートを,入力/汎用出力/代替え機能/アナログに設定するレジスタ |
MikamiUitOpen | 0:09d27b602681 | 31 | // PUPDR I/O ポートを,プルアップ,プルダウン,プルアップ・プルダウンなしに設定するレジスタ |
MikamiUitOpen | 0:09d27b602681 | 32 | // OTYPER 出力のタイプをプッシュプル/オープンドレインに設定するレジスタ |
MikamiUitOpen | 0:09d27b602681 | 33 | printf("\r\n\nGPIOB mode Reg.: 0x%08x", GPIOB->MODER); |
MikamiUitOpen | 0:09d27b602681 | 34 | printf("\r\nGPIOB pull-up/pull-down Reg.: 0x%08x", GPIOB->PUPDR); |
MikamiUitOpen | 0:09d27b602681 | 35 | |
MikamiUitOpen | 3:f9dc19059c3b | 36 | bus = 0x7F; |
MikamiUitOpen | 0:09d27b602681 | 37 | SetOpenDrain(D2, D3, D4, D5, D6, D7, D8); |
MikamiUitOpen | 1:5bf39be14d61 | 38 | printf("\r\n\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER); |
MikamiUitOpen | 1:5bf39be14d61 | 39 | printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER); |
MikamiUitOpen | 1:5bf39be14d61 | 40 | WaitButton("\r\nD2 - D8: open drain\r\n"); |
MikamiUitOpen | 0:09d27b602681 | 41 | |
MikamiUitOpen | 0:09d27b602681 | 42 | SetPushPull(D2, D3, D4, D5, D6, D7, D8); |
MikamiUitOpen | 1:5bf39be14d61 | 43 | printf("\r\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER); |
MikamiUitOpen | 1:5bf39be14d61 | 44 | printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER); |
MikamiUitOpen | 1:5bf39be14d61 | 45 | WaitButton("\r\nD2 - D8: push-pull\r\n"); |
MikamiUitOpen | 1:5bf39be14d61 | 46 | |
MikamiUitOpen | 0:09d27b602681 | 47 | SetOpenDrain(D2); |
MikamiUitOpen | 1:5bf39be14d61 | 48 | printf("\r\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER); |
MikamiUitOpen | 1:5bf39be14d61 | 49 | printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER); |
MikamiUitOpen | 1:5bf39be14d61 | 50 | WaitButton("\r\nD2: open drain\r\n"); |
MikamiUitOpen | 0:09d27b602681 | 51 | |
MikamiUitOpen | 0:09d27b602681 | 52 | SetOpenDrain(D3, D4); |
MikamiUitOpen | 1:5bf39be14d61 | 53 | printf("\r\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER); |
MikamiUitOpen | 1:5bf39be14d61 | 54 | printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER); |
MikamiUitOpen | 1:5bf39be14d61 | 55 | printf("\r\nD2 - D4: open drain\r\n"); |
MikamiUitOpen | 0:09d27b602681 | 56 | |
MikamiUitOpen | 3:f9dc19059c3b | 57 | #ifdef STM32F7 |
MikamiUitOpen | 3:f9dc19059c3b | 58 | DigitalOut pg(PG_0, 0); |
MikamiUitOpen | 3:f9dc19059c3b | 59 | WaitButton("\r\nPG_0: push-pull, Output: 0\r\n"); |
MikamiUitOpen | 3:f9dc19059c3b | 60 | |
MikamiUitOpen | 3:f9dc19059c3b | 61 | pg = 1; |
MikamiUitOpen | 3:f9dc19059c3b | 62 | WaitButton("\r\nPG_0: push-pull, Output: 1\r\n"); |
MikamiUitOpen | 3:f9dc19059c3b | 63 | SetOpenDrain(PG_0); |
MikamiUitOpen | 3:f9dc19059c3b | 64 | |
MikamiUitOpen | 3:f9dc19059c3b | 65 | WaitButton("\r\nPG_0: Open RDain\r\n"); |
MikamiUitOpen | 3:f9dc19059c3b | 66 | SetPushPull(PG_0); |
MikamiUitOpen | 3:f9dc19059c3b | 67 | WaitButton("\r\nPG_0: push-pull\r\n"); |
MikamiUitOpen | 3:f9dc19059c3b | 68 | #endif |
MikamiUitOpen | 3:f9dc19059c3b | 69 | |
MikamiUitOpen | 3:f9dc19059c3b | 70 | printf("\r\nEnd of Test\r\n"); |
MikamiUitOpen | 3:f9dc19059c3b | 71 | |
MikamiUitOpen | 0:09d27b602681 | 72 | while (true); |
MikamiUitOpen | 2:966a8ad956d3 | 73 | } |