1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

Similar documents
1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

TrueSTUDIO 用 F4D_Mail_BP359x の説明 V /09/16 CPU 基板から Mail 送信を行う STM32F4 Discovery 用のプロジェクトサンプルです RAM の使用量は 10Kbyte 未満です ROHM 社製 WIFi モジュール BP3591

TCP_BP3591 の説明 V /03/28 ROHM 社製 WIFi モジュール BP3591 を使用して 無線 LAN により TCP/IP 通信を行うプログラムです 簡単な文字列によるコマンド ( 例 : LED0 ON ) を受信して LED の ON/OFF を行います 受

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

ST-LINK/V2-1 への Upgrade V /10/07 ST-LINK/V2-1 USB driver のインストールおよび ST-LINK/V2-1 の Upgrade について説明します ST-LINK/V2-1 USB driver をインストールしてから ST-LIN

1. ST-LINK Utility のダウンロード Windows7 PC にインストールする場合について説明します 1.1. STMicroelectronics のサイト STMicroelectronics のサイトを開きます ここに ST-LINK と入力して検索します ( 右側の虫眼鏡を

CommCheckerManual_Ver.1.0_.doc

ETCB Manual

STM32F405VG 搭載 CPU 基板の仕様 V /10/14 STMicroelectronics 社製の Cortex-M4 ARM CPU STM32F405VGT6 を搭載した CPU 基板です 目次 1. 概要 CPU 基板のブロック図 C

AKI-PIC16F877A開発キット (Ver1

RP-VL-S-01, RP-VL-R-01

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

Taro-82ADAカ.jtd

Windows10 における Ac6 System Workbench for STM32 のダウンロードとインストール V /06/01 Windows10 の PC で Ac6 System Workbench for STM32 のダウンロードとインストールの方法について説明しま

スライド 1

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

Photo Sensor – 적외선 센서

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

UIOUSBCOM.DLLコマンドリファレンス

iCLR

SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日

USB モジュール

開発環境構築ガイド

Microsoft Word - CAN Monitor の使い方.doc

Studuinoプログラミング環境

MS5145 USB シリアル エミュレーション モードの設定

著作権および商標 この文書には が所有権を持つ機密事項が含まれます この資料のいかなる部分も許 可無く複製 使用 公開することを固く禁じます 本書は の従業員および許可された 取引先だけに使用が認められています 本書で提供されたデータは正確で信頼性の高いものですが このデータの使用について株式会社

RS-422/485 ボード取扱説明書 RS-422/485 ボード取扱説明書 Revision 0.3 コアスタッフ株式会社技術部エンジニアリング課 Copyright 2009 Core Staff Co.,Ltd. All Rights Reserved - 1 of 17

Raspberry Pi (Windows10 IoT Core) を使用したリーダ ライタの制御例 (UART 接続 ) 2018 年 12 月 18 日第 版 株式会社アートファイネックス

第 7.0 版 利用履歴管理 ETCPRO5 セットアップマニュアル (Ver5.002) カードリーダモデル変更 ( 表示付き 表示なし ) に伴い 改訂 Windows10 対応に伴い 改訂 参考ホームページサイト :

商品番号 : UTS-422 USB-RS422( シリアル ) 変換ケーブル (USB1.1 規格対応 ) 概要 UTS-422 は RS-422 インターフェースを持つ外部周辺機器をパソコンの USB ポートを介してコントロールするための USB-RS422 変換ケーブルです 最大 3Mbps

スライド 1

開発環境構築ガイド

S7G2_e2std_USBX_CDC_ACM

スライド 1

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

起動画面

// USB_CNC_Machine リモート PIO 端末プログラムのメイン関数およびユーザアプリ部 // 編集作成 by Takehiko Inoue /*********** メイン関数 ***************************/ #pragma code

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設

EB-RL7023+SB/D2

無線LAN JRL-710/720シリーズ ファームウェアバージョンアップマニュアル 第2.1版

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

スライド 1

8051 개발보드 메뉴얼

Fujitsu Standard Tool

9. デバッグ デバッグの準備 ) ST-Link/V2 と tri-s CPU 基板との接続の様子 ) ST-Link/V2 と tri-s CPU 基板との接続信号 デバッグ ) プログラムの実行

作成 承認 簡単取扱説明書 (S&DL 水位計 ) 応用計測サービス株式会社 (1.1)

株式会社日新テクニカ USB シリアル CAN 変換器 /8/22 ホームページ : メール

Photo Sensor – 적외선 센서

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

AN1530 Etherサンプルプログラム解説(RX71M)

PowerPoint Presentation

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

ワイヤレスセンサモジュール取扱説明書

スライド 1

目次 目次 ターミナルアダプタの接続イメージ INS 回線とターミナルアダプタの接続 ターミナルアダプタの設定とパソコン接続 ドライバのインストール ユーティリティインストール CD-ROM をお持ちでない場合... 4

本ドキュメントについて 的 ARM 統合開発環境である ARM IAR Embedded Workbench(EWARM) と ST マイクロエレクトニクス社 (ST 社 ) 提供のサンプルプロジェクト および設計 援ツールを使 して ST 社評価ボード のソフトウェアを実際にビルド デバッグする

Microsoft Word - USB60F_Raspi_ doc

商品番号 : UTS-485 USB-RS485( シリアル ) 変換ケーブル (USB1.1 規格対応 ) 概要 UTS-485 は RS-485 インターフェースを持つ外部周辺機器をパソコンの USB ポートを介してコントロールするための USB-RS485 変換ケーブルです 最大 1.2km

訂正 _ 第 1 回 1 Arduino Arduino を用意する 入力 アナログ Analog 入出力 任意の電圧を扱える 電源系 外部入力 7 12V デジタル digital 入出力 リセットボタン Low High いわゆる 01 が入出力される 通常は Low 0V GND High 5


目次 目次 ターミナルアダプタの接続イメージ INS 回線とターミナルアダプタの接続 ターミナルアダプタの設定とパソコン接続 ドライバのダウンロードとインストール ユーティリティインストールCD-ROMをお持ちでない場合.

出荷一覧表をもう一度印刷したい

目次 目次 ターミナルアダプタの接続イメージ INS 回線とターミナルアダプタの接続 ターミナルアダプタの設定とパソコン接続 ドライバのインストール ユーティリティインストール CD-ROM をお持ちでない場合... 4

接続例 ピンアサイン ポート端子台 配線可能電線太さ : AWG 16~AWG 28 端子番号信号名 1 Data + 2 Data GND Data (=TxD + RxD) : 送受信データ ( 入出力 ) - は 無接続です ご注意 : 無接続端子の

Microsoft Word - PCET10-CL_02a†iWinNT40_PDFŠp†j.doc

改版履歴 Rev. 日付作成者 Page 内容 /2/10 新規作成 /6/22 12 PIN アサイン表修正 10,11 モジュール仕様修正 /11/14 3 CONTENTS 修正 旧 6~9 開発ボードページ削除 ( 取説へ移行 )

表 信号端子 端子名 入出力 機能 DTR 出力 COM ポート DTR (Data Terminal Ready Control Output / Handshake Signal) RXD 入力 COM ポート RXD (Receiving Asynchronous Data Input) TX

TWE-Lite R 取扱説明書

1. プロジェクトサンプルのダウンロードと 解 凍 1.1. プロジェクトサンプルのダウンロード 当 サイトのプロジェクトサンプルの 圧 縮 ファイルBlink_LED_Status_10K.zipをダウンロードしてください ダウンロードが 終 了 したら [フォルダーを 開 く] ボタンをくりっく

CR-USB 仕様書 株式会社測商技研 JS カード用データ転送用カードリーダー CR-USB 仕様書 取扱説明書 2012 年 07 月 31 日版 株式会社測商技研 1. 概要 本器は当社製自動観測装置で記録した JS カードデータ

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

920MHzLPWA無線モジュール IM920のご紹介

スライド 1

Studuino ライブラリ環境設定Windows編

FTP_RW_ProgramDescription_jp_V100

M4Gグループ(1)_CEC-A

Microsoft Word - BluetoothV21接続手順書3_CM520BT.docx


rekordbox TM MIDI LEARN 機能操作ガイド

目次 1. 概要 動作環境

PA-S500 取扱説明書

AP-RZA-1A シリアルFlashROMの書き込み方法

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

Perle社 ターミナルサーバIOLAN STS8と富士通PCサーバ PRIMERGY RX2520 M1 の接続検証結果報告書(Red Hat Enterprise Linux 6.6(for Intel64)版)

RW-5100 導入説明書 Windows7 用 2017 年 7 月 シャープ株式会社

Microsoft Word - Ladder Tool 使çfl¨ã…žã…‰ã…¥ã‡¢ã…«ã…©ã…•ã…¼ã†ªã†Š_ docx

Transcription:

TrueSTUDIO 用 L152CD_UART1 の説明 V001 2014/10/22 UART( 非同期シリアル通信 ) で送受信を行う STM32L152C-DISCO のプロジェクトサンプルです STM32L152C-DISCO は STMicroelectronics 社製の Cortex-M3 ARM CPU である STM32L152RCT6 を搭載した基板です 試用版の開発ツール Atollic TrueSTUDIO for ARM Lite で作成したプロジェクトです ビルド可能なプログラムのコードサイズが 32Kbyte 以内の制限があります プログラムの開始番地は 0x08000000 です デバッグが可能です 目次 1. 使用する信号... 2 1.1. UART 信号... 2 1.2. RS232C ドライバ... 2 1.3. RS232C ケーブル接続図... 3 2. UART 通信確認のための接続例... 3 3. プログラム実行時の動作... 4 4. UART 通信の動作確認... 4 4.1. アプリケーション Access_SerialPort の起動画面... 4 4.2. COM ポートの選択... 5 4.3. 送信データのエコーバック... 6 4.4. 基板上の LED LD4( 青 ) の点灯 / 消灯... 7 5. プロジェクトの構成... 8 5.1. プロジェクト L152CD_UART1 の起動画面... 8 5.2. 追加したソース フォルダとファイル... 8 5.3. UART1 通信データの利用... 9 1) データ送信... 9 2) データ受信... 9 3) UART 送受信の例... 10 4) UART 受信データの処理の例... 10 6. 主なモジュールの説明... 11 6.1. ソース フォルダ src 内のファイル... 11 6.2. HandleCLK... 12 6.3. HandleGPIO... 12 6.4. HandleTIM... 13 6.5. HandleUART... 14 6.6. Communicate_UART... 15 6.7. UserPrograms... 16 1

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN10-21 --- > RxD 2 USART1_RX PA10 CN10-33 < --- TxD 3 GND GND CN10-20 < --- > GND UART 信号を CMOS レベルどうしでそのまま接続してシリアル通信を行うことができます UART 信号に RS232C ドライバを接続して RS232C レベルの信号どうしで接続すれば RS232C 通信を行うことができます 1.2. RS232C ドライバ RS232C ドライバの例を以下に示します RS232C ストレートケーブル接続の場合の DSUB-9S への接続例を以下に示します この例では DSUB-9S には TxD, RxD, GND の 3 本の信号以外は接続されません 番号 RS232C ドライバ 方向 ドライバ側 D-SUB 9S 1 RS1_TxD --- > 2 2 RxD 2 RS1_RxD < --- 3 3 TxD 3 GND < --- > 5 5 GND ストレートケーブル側 D-SUB 9P 2

DSUB-9S DSUB-9P DSUB-9S 1.3. RS232C ケーブル接続図 NUCLEO-L152RE RS232C ドライバ 接続機器 (PC など ) 図 1.3. ストレートケーブル 2. UART 通信確認のための接続例アプリケーション Access_SerialPort を使用して UART( 非同期シリアル通信 ) によりデータの送受信の確認 およびコマンド文字列を送信して STM32L152C-DISCO 上の LED LD4( 青 ) の点灯 / 消灯を行います 動作確認を行うための接続は以下のようになります この例は RS232C レベルで UART 信号を接続しています PC A USB ケーブル : 電源供給および ST-LINK のため USB ポート STM32L152C-DISCO MiniB RS232C ドライバ RS232C 変換ケーブル DSUB-9S 図 2. 3

3. プログラム実行時の動作 1) プログラムを実行すると基板上の LED LD3( 緑 ) が 1 秒点灯 2 秒消灯で点滅します 2) UART1 のチャンネルでデータ受信待ちを行います 3) データを受信するとそのデータをそのまま送信します ( エコーバック ) 4) 受信データが LED 点滅のコマンドであった場合 以下のように動作します 番号 受信コマンド 動作 1 LD4 ON\0 LD4( 青 ) 点灯 2 LD4 OFF\0 LD4( 青 ) 消灯 4. UART 通信の動作確認 UART( 非同期シリアル通信 ) のツール Access_SerialPort アプリケーションを使用して データの送受信の確認 およびコマンド文字列を送信して STM32L152C-DISCO 上の LED LD4( 青 ) の点灯 / 消灯を行います 4.1. アプリケーション Access_SerialPort の起動画面まず PC と STM32L152C-DISCO とを RS232C インターフェースで接続してください アプリケーション Access_SerialPort を起動すると以下のダイアログが表示されます RS232C ケーブルを接続している場合 COM( シリアルポート ) を検索しました と表示されます 4

4.2. COM ポートの選択 COM 選択の ComboBox で COM を選択します 確認のメッセージが表示されるので よい場合は [ はい (Y)] ボタンをクリックします 5

この例では COM4 に設定しました とメッセージが表示されています 4.3. 送信データのエコーバック送信データの TextBox に ASCII 文字列を入力して [ 送信 ] ボタンをクリックすると CPU 基板にデータが送信されます CPU 基板はデータを受信して そのデータをそのまま PC に送信します PC が受信したデータは受信データの部分に表示されます 上記の例では 送信データに How are you? と入力して [ 送信 ] ボタンをクリックした結果 エコーバックのデータが受信データの欄に表示されています 6

4.4. 基板上の LED LD4( 青 ) の点灯 / 消灯基板上の LED LD4( 青 ) の点灯 / 消灯コマンドは以下のようになります 番号 受信コマンド 動作 1 LD4 ON\0 LD4( 青 ) 点灯 2 LD4 OFF\0 LD4( 青 ) 消灯 この例では LD3 ON&00 とセットします 0x20 未満 0x7F 以上のコードは &xx の形で入力します &00 は 0x00 です <CR> の 0x0D なら &0D とします & 自体を入力する場合は &26 と入力してください LD4 ON&00 を入力して [ 送信 ] ボタンをクリックした結果 STM32L152C-DISCO は LD4( 青 ) を点灯します また 受信データ LD4 ON&00 をエコーバック送信します 受信データの欄にはエコーバックされたデータが表示されます LD4( 青 ) を消灯したい場合は LD4 OFF\0 を送信します 7

5. プロジェクトの構成 5.1. プロジェクト L152CD_UART1 の起動画面 TrueSTUDIO で作成したプロジェクト L152CD_UART1 を開いた状態を以下に示します 左側のプロジェクト エクスプローラーの L152CD_UART1 を展開した状態です 5.2. 追加したソース フォルダとファイル追加したソース フォルダとファイルについて簡単に説明します 1) Communicate_UART ( ソース フォルダ ) a) Communicate_UART.h Communicate_UART.c ( ファイル ) 接続相手との通信処理を記述しています データを受信して 受信データをそのまま送信します ( エコーバック ) 受信データを判定して LD4( 青 ) の点灯 / 消灯を行います 2) Handles ( ソース フォルダ ) Peripheral の設定などを行っています a) HandleCLK.h HandleCLK.c ( ファイル ) 内部クロック HSI を使用するための設定を記述しています HSI( 周波数 16MHz) を入力して PLL により 32MHz にしてシステムクロック SYSCLK として使用します b) HandleGPIO.h HandleGPIO.c ( ファイル ) GPIO 入出力の初期設定を記述しています c) HandleTIM.h HandleTIM.c ( ファイル ) タイマ割り込みを使用するために タイマの初期設定を記述しています 1mSec ごとにタイマ割り込みが発生するように設定しています d) HandleUART.h HandleUART.c ( ファイル ) UART の初期化と UART 送受信の処理を記述しています 8

3) UserPrograms ( ソース フォルダ ) LED のための処理を記述しています a) UserPrograms.h UserPrograms.c ( ファイル ) Status LED : LD3( 緑 ) に使用している GPIO の初期設定と点滅処理を記述しています LD4( 青 ) に使用している GPIO の初期設定を記述しています 5.3. UART1 通信データの利用 1) データ送信ソースフォルダ Handles の下の HandleUART.c で宣言しているバッファ GLB_uint8_Tx1_Buffer に送信データをセットしてます そして引数に送信データ数をセットして 以下のモジュールを呼び出すとデータを送信することができます -- // UART1 送信処理 : 送信 Buffer に送信データがセットされた状態で Call される -- // uint16_t uint16_sendlength : 送信データ数 // 戻り値 : // 0 : 送信終了 // 1 : エラー -- void SendUART1(uint16_t uint16_sendlength); 2) データ受信引数に受信データを格納するバッファのポインタを指定して 以下のモジュールを呼び出します 戻り値の受信 byte 数が 1 以上の場合 データが受信されています -- // UART1 受信処理 -- // uint8_t *puint8_receivebuffer : 受信データを格納する Buffer のポインタ // 戻り値 : // -1 : 受信なし // 0 : 受信なし // 1 以上 : 受信 byte 数 -- int16_t ReceiveUART1(uint8_t *puint8_receivebuffer); 9

3) UART 送受信の例ソースフォルダ Communicate_UART の下のファイル Communicate_UART.c に UART1 送受信の例が記述されています //------------------------------------------------------------ // UART1 通信処理 //------------------------------------------------------------ // 戻り値 : // -1 : 処理中 // 0 : 終了 //------------------------------------------------------------ int16_t Communicate_UART1(void); 4) UART 受信データの処理の例以下のモジュールで受信データを判定して 処理を行っています ---- // 受信コマンド判定および実行 ---- // 引数 // uint16_t uint16_receivelength : 受信データ数 // uint8_t *puint8_receivedata : 受信データが格納された Buffer のポインタ // uint8_t *puint8_senddata : 応答送信データを格納する Buffer のポインタ // 戻り値 : 応答送信データ数 ---- uint16_t ExecuteCommandUART(uint16_t uint16_recievelength, uint8_t *puint8_receivedata, uint8_t *puint8_senddata); 10

6. 主なモジュールの説明 6.1. ソース フォルダ src 内のファイルソース フォルダ src 内のファイルでプログラムを追加した主なファイルについて簡単に説明します 1) main.c a) main 関数プログラムはここから開始します 主に初期化処理関数を呼び出しています int main(void) b) システムクロックの設定システムクロック SYSCLK の設定を行います 内部クロック HSI を PLL を使用して 32MHz に設定します ------------------ // HSI を選択して PLL Clock を System Clock として使用する : SYSCLK = 32MHz ------------------ SetHSICLK32MHz(); c) 使用するクロックの初期化 //----------------------- // 周辺クロックの初期化 //----------------------- RCC_Configuration(); d) GPIO の初期化 //----------------------- // GPIO 初期化 //----------------------- Init_GPIOs(); e) Status LED と LD4 ポートの初期化 //-------------------------------------- // Status LED ポート初期化 : LD3( 緑 ) //-------------------------------------- InitializePortStatusLED(); //-------------------------------------- // LD4( 青 ) ポート初期化 //-------------------------------------- InitializePortLD4(); 11

f) UART の初期化 //----------------------------------------------------------- // UART1 通信パラメータ初期化 : 通信速度 9600bps //----------------------------------------------------------- InitializeCommunicate_UART1((uint32_t)9600); g) TIM6 の初期化と割り込み許可 ------ // TIM6 初期化 ------ InitializeTIMx(TIM6, RCC_APB1Periph_TIM6, (uint16_t)definterval_1msec); EnableIrqTIMx(RCC_APB1Periph_TIM6, TIM6_IRQn); // TIM6 Enable Interrupt ------ 2) stm32f4xx_it.h stm32f4xx_it.c このファイルに割り込み処理を記述します 本プロジェクトサンプルでは TIM11 のタイマ割り込み処理と UART1 の割り込み処理を記述しています 6.2. HandleCLK 動作クロックに内部クロック HSI : 16MHz を選択し PLL により 32MHz にして使用します ------------------ // HSI を選択して PLL Clock を System Clock として使用する : SYSCLK = 32MHz ------------------ void SetHSICLK32MHz(void); 6.3. HandleGPIO GPIO を初期化します 1) 低消費電力モード時の GPIO 初期化最初は 使用しない GPIO ピンをアナログ入力モードに初期化します ---------------- // 低消費電力モード時の GPIO 初期化 ---------------- void InitializeGPIOs_LowPower(void); 12

2) GPIO の初期化必要な GPIO の初期化を行います //--------------------------------------------- // GPIO 初期化 //--------------------------------------------- void Init_GPIOs(void); 6.4. HandleTIM 1) TIM6 の初期化タイマ割り込みのために TIM6 を初期化してインターバルをセットします 1mSec ごとに割り込みがかかるように設定しています 以下の関数の引数に TIM6 用のパラメータを指定して TIM6 を初期化します -------------- // TIMx 初期化 -------------- // TIM_TypeDef *TIMx : TIM 選択 : TIM6 or TIM7 // uint32_t RCC_APB1Periph_TIMx : specifies the APB1 peripheral to gates its clock. // uint16_t uint16_interval : TiMx のインターバル設定値 -------------- void InitializeTIMx(TIM_TypeDef *TIMx, uint32_t RCC_APB1Periph_TIMx, uint16_t uint16_interval); 2) タイマ割り込み許可以下の関数の引数に希望する TIMx 用のパラメータを指定して割り込みを許可します ------------------- // TIMx 割り込み許可 ------------------- // uint32_t RCC_APB1Periph_TIMx : specifies the APB1 peripheral to gates its clock. // uint8_t TIMx_IRQn : STM32 specific Interrupt Numbers ------------------- void EnableIrqTIMx(uint32_t RCC_APB1Periph_TIMx, uint8_t TIMx_IRQn); 13

6.5. HandleUART 1) UART の初期化 //------------------------------------------------- // UART1 初期化 //------------------------------------------------- // uint32_t uint32_baudrate : 通信速度 bps //------------------------------------------------- void InitializeUART1(uint32_t uint32_baudrate); 2) UART 送信送信 Buffer に格納されたデータを指定データ数送信します -- // UART1 送信処理 : 送信 Buffer に送信データがセットされた状態で Call される -- // uint16_t uint16_sendlength : 送信データ数 // 戻り値 : // 0 : 送信終了 // 1 : エラー -- void SendUART1(uint16_t uint16_sendlength); 3) UART 受信受信待ちを行いデータを受信したら 受信 Buffer に格納します -- // UART1 受信処理 -- // uint8_t *puint8_receivebuffer : 受信データを格納する Buffer のポインタ // 戻り値 : // -1 : 受信なし // 0 : 受信なし // 1 以上 : 受信 byte 数 -- int16_t ReceiveUART1(uint8_t *puint8_receivebuffer); 14

6.6. Communicate_UART 1) UART の初期化 //----------------------------------------------------------- // UART1 通信パラメータ初期化 //----------------------------------------------------------- // uint32_t uint32_baudrate : 通信速度 //----------------------------------------------------------- void InitializeCommunicate_UART1(uint32_t uint32_baudrate); 2) UART 通信処理 UART の受信待ちを行い 受信データを判定して LED の点滅間隔の変更を行います 受信データはエコーバックします //------------------------------------------------------------ // UART1 通信処理 //------------------------------------------------------------ // 戻り値 : // -1 : 処理中 // 0 : 終了 //------------------------------------------------------------ int16_t Communicate_UART1(void); 3) 受信コマンドの実行 ---- // 受信コマンド判定および実行 ---- // 引数 // uint16_t uint16_receivelength : 受信データ数 // uint8_t *puint8_receivedata : 受信データが格納された Buffer のポインタ // uint8_t *puint8_senddata : 応答送信データを格納する Buffer のポインタ // 戻り値 : 応答送信データ数 ---- uint16_t ExecuteCommandUART(uint16_t uint16_recievelength, uint8_t *puint8_receivedata, uint8_t *puint8_senddata); 15

6.7. UserPrograms UserPrograms.h には LED に使用する GPIO に対する定義を記述してあります 以下に UaerPrograms.c に記述している関数の説明を記します 1) LED に使用する GPIO の初期化 ( 共通処理 ) GPIO 番号とピン番号を指定して I/O を初期化します // LED ポート初期化 // GPIO_TypeDef *GPIOx : GPIO ポート指定 // uint16_t GPIO_Pin_x : GPIO ピン指定 void InitializePortLED(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin_x); 2) LED の点滅処理 ( 共通処理 ) GPIO 番号とピン番号などを指定して希望の LED の点滅処理を行います // LED 点滅 : 点灯 / 消灯切り替え // 点灯 / 消灯を切り替えると同時に点灯時間 / 消灯時間をセットする // GPIO_TypeDef *GPIOx : GPIO ポート指定 // uint16_t GPIO_Pin_x : GPIO ピン指定 // int16_t *pint16_onoff : ON/OFF 状態 // 0 : OFF // 1 : ON // uint16_t *puint16_timer : 点灯時間 / 消灯時間をセットする変数のポインタ // uint16_t uint16_timeon : 点灯時間 // uint16_t uint16_timeoff : 消灯時間 void BlinkLED(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin_x, int16_t *pint16_onoff, uint16_t *puint16_timer, uint16_t uint16_timeon, uint16_t uint16_timeoff); 16

3) LED に使用する I/O の初期化 a) StatusLED : LD3( 緑 ) // Status LED ポート初期化 : LD3( 緑 ) void InitializePortStatusLED(void); b) LD4( 青 ) // LD4( 青 ) ポート初期化 void InitializePortLD4(void); 4) StatusLED : LD3( 緑 ) の点滅 // Status LED 点滅 : LD3( 緑 ) : 点灯 / 消灯切り替え // TIMx 割り込み内で GLB_uint16_BlinkTimerStatusLED をデクリメントする // GLB_uint16_BlinkTimerStatusLED が 0 になった時 呼び出される // 点灯 / 消灯を切り替えると同時に点灯時間 / 消灯時間をセットする // uint16_t uint16_timeon : 点灯時間 // uint16_t uint16_timeoff : 消灯時間 void BlinkStatusLED(uint16_t uint16_timeon, uint16_t uint16_timeoff); 17

有限会社りばいぶ 電子工作のための 飛石伝ひ 改訂履歴 V001 2014/10/22 初版 18