「STM32」カテゴリーアーカイブ

STM32F1系小型マイコンボード買った

久しぶりにマイコンボード買った。

stm32mini

小型のSTM32F103マイコンで20PINのJTAGコネクタが付いているのはGOOD!
その他には、UART(TTL)、USB(スレーブ)、Flashメモリ等。
何よりも小型なのが良い。

なんとnRF24L01専用ポートもあるので接続してみた。

stm32mini-rf

ちょっと基板からはみ出るが問題なし。

STM32F429ボードにSTemWin(2)

前回STemWinライブラリにタッチパネルの座標を認識させる方法がわからないと書きましたが、サンプルアプリ内を見直すことでなんとか認識させることができました。

手順は簡単で

GUI_PID_STATE構造体のx,yに座標をセットしPressedを1にしてGUI_TOUCH_StoreStateEX()にGUI_PID_STATE構造体を引数として渡すことでSTemWin側に座標を認識させることができる。

これを数十ミリ~数百ミリ間隔で行うことでボタンの押下にも対応できます。タッチイベントの割り込み線があればその都度行うことで処理を軽減できるでしょう。

STM32F429レベルのマイコンとSDRAMがあればSTemWinライブラリも軽々動作可能です。

STM32F429ボードにSTemWin

昨日からLCD表示に挑戦しておりまして本日表示できました。

STemWinライブラリに関しては日本語での情報が少なくて困ります。

blog等でも使用例がほとんどなく(見つけられなかった・・・)STMicroのHPにも簡単なPDFがあるだけです。なのでSTM32Cube_FW_F4のサンプルを参考になんとか実装できた感じです。STMicroはSTemWinやHALのライブラリを無料で公開していただける素晴らしい企業ですがドキュメントが貧弱です。もう少し改善を希望します。

それでは画面キャプチャです。↓

20140914_162619

写真が暗いのでわかりにくいですが、テキストボックスやボタン等Windowsライクな表示が可能です。

パーツの配置や大きさ等はSTemWinライブラリ付属のGUIBuilder.exeを使用することでWindows上マウスを使用して簡単に行えます。配置が出来上がったらファイルに書き出すことでそのままコンパイル&リンクで表示できます。

無料のSTemWinライブラリでここまでできてしまうSTMicroさん太っ腹です。

ただ残念なのはまだタッチパネルが動いていないことでしょうか・・・。STemWinからどうやって認識させるか調査中。

 

STM32F429ボードにLWIP

しばらく間が空いてしまいましたが、なんとかLWIPを動作させることができました。

LWIPは「第3回TOPPERS活用アイデア・アプリケーション 開発コンテスト」の「アプリケーション開発部門」で銅賞を受賞した松浦光洋さんの「lwIPの移植」ソースコードを参考に(ほぼ全て)利用させていただきました。

ASPといいLWIPといいTOPPERSさんには感謝です。

とりあえず画面キャプチャです。

asp-lwip-ping

asp-lwip-http

 

TOPPERS/ASP(ITRON)動いた

前回STM32F429マイコンボードでTOPPERS/ASPの起動ロゴまで出て例外で止まっていたが、今回動作の確認ができた。

(基本的な記述ミスで例外が発生していたのは内緒だ)

stm32f429_toppers_sample_task

今回のコードはCortex-M3のコードだけを使用している。なので浮動小数点レジスタの類も当然考慮していない。タスクディスパッチや割り込みで浮動小数点レジスタの保存すればOKかな?

OSは動いたのであとはアプリだな。

ECHONET liteとかやってみたい。

 

TOPPERS/ASP(ITRON)動かしてみた(?)

購入したマイコンボード。何か動かすにはOSを動かす必要がある。

なのでTOPPERS/ASPを動かすことにした。

なぜTOPPERS/ASPか、というのは置いておくとして・・・・。

TOPPERS/ASP 1.9.0のCortex-M3版をダウンロードする。

どうやらstbeeというマイコンボード用らしいがなんとかなるだろう。

・target_config.cのtarget_initialize()内をごっそりと、先ほどのSTM32CUBEMXで作った初期化処理で置き換える。

・USARTはTOPPERSのドライバを使用するのでそのまま使用する。

するとbannerまでは出た。↓

stm32f429_toppers_start_logo

このあと例外で終了しているっぽいのでなんとかしたい・・・