投稿日: Jun 11, 2017 3:29:55 PM
STM32F303K8にはDACが3つついてます。
DAC1が2chとDAC2が1chってかんじで。
んで、わーいDACがみっつもあるめう! mbedで使うめう!!
って使おうとするとつかえないんですよね。
具体的にはDACを初期化した時に以前初期化されていたDACのインスタンスを上書きしてしまうので実質1つしか同時に使えないんです。 原因はなにか。mbedです。
んで、mbedのHALライブラリにanalogout_api.cっていうのがあるのですが。
それをちょいちょいいじると直せるはずです。
で、しばらく弄っていたのだけども何かを間違えてるようで動かない。
困ったなーだれかやってないかなーと思って探していたら、まんまそのまんまジャストなのがありました。
takeshi ogasawara / analogout_api_STM32F3 analogout_api.c
まさかの日本人です。日本人もやるな!素敵です!
これを、mbedライブラリに上書きするんですが。
webコンパイラならmbed-srcをプロジェクトにインポートして? やるの?
わかりません。使ってないから。
platformioの場合、linuxの場合。
~/.platformio/packages/framework-mbed/targets/TARGET_STM/TARGET_STM32F3
ここにあるanalogout_api.cを上書きします。
.platformioの位置は人によっては違うかもしれませんが。基本ここのはず。
これでSTM32F303K8でAOUTを複数同時につかえます!!!
※cmsisで頑張っていたのだけどどうもどこかから干渉されていて(多分mbedだけど)上手くいきませんでした。
これから、上手くいかないことがあったらとことんHALを弄り倒す方向で考えます。
※そういえば、mbedのanalogOutって解説では10bitってなってなすけども、
aout.write( hoge );としてSTM32F3で使う場合しっかり12bit対応してるみたいです。しっかり右揃えで。