出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数の使用例. Example of global functions for setting the output port bits as open-drain or push-pull.
Dependencies: mbed UIT_SetOutputPortType
main.cpp
- Committer:
- MikamiUitOpen
- Date:
- 2015-09-04
- Revision:
- 2:966a8ad956d3
- Parent:
- 1:5bf39be14d61
- Child:
- 3:f9dc19059c3b
File content as of revision 2:966a8ad956d3:
//--------------------------------------------------------------------------------- // 出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数の使用例 // (Example of global functions for setting the output port bit // as open-drain or push-pull) // // 2015/09/04, Copyright (c) 2015 MIKAMI, Naoki //--------------------------------------------------------------------------------- #include "SetOutputPortType.hpp" using namespace Mikami; BusOut bus_(D2, D3, D4, D5, D6, D7, D8); DigitalIn uButton_(USER_BUTTON); // ユーザ・ボタン(青のボタン)を押すまで待つ関数 void WaitButton(char str[]) { printf(str); printf("\r\nPush blue button"); while (uButton_ == 1) {} wait(0.5); } int main() { // MODER I/O ポートを,入力/汎用出力/代替え機能/アナログに設定するレジスタ // PUPDR I/O ポートを,プルアップ,プルダウン,プルアップ・プルダウンなしに設定するレジスタ // OTYPER 出力のタイプをプッシュプル/オープンドレインに設定するレジスタ printf("\r\n\nGPIOB mode Reg.: 0x%08x", GPIOB->MODER); printf("\r\nGPIOB pull-up/pull-down Reg.: 0x%08x", GPIOB->PUPDR); bus_ = 0x7F; SetOpenDrain(D2, D3, D4, D5, D6, D7, D8); printf("\r\n\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER); printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER); WaitButton("\r\nD2 - D8: open drain\r\n"); SetPushPull(D2, D3, D4, D5, D6, D7, D8); printf("\r\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER); printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER); WaitButton("\r\nD2 - D8: push-pull\r\n"); SetOpenDrain(D2); printf("\r\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER); printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER); WaitButton("\r\nD2: open drain\r\n"); SetOpenDrain(D3, D4); printf("\r\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER); printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER); printf("\r\nD2 - D4: open drain\r\n"); while (true); }