STM32F3でanalogOut

投稿日: Jun 12, 2017 6:27:53 PM

まだまだmbedです。地雷多すぎです。

一応、もともとはLPCで使うものだったはずなので左寄せ10bit有効。っていうのがanalogOutの仕様なんですが。

STM32で使う場合弄っても弄っても意味わかんなくてもう、どうしてやろうかこのやろうってかんじなんですね。

コードを見るかぎり右寄せ12bit有効になってるようにみえるんですがねー。

で、わけわからないからこうやって使いましょう。

というお話。

analogOutを複数使う のanalogout_api.cが適用してあるのを前提にしてます。

AnalogOut aout1(PA_4);

AnalogOut aout2(PA_5);

まずは普通に、analogOutを初期化します。 PA4とPA5を使ってステレオ出力。

んで、実際の出力では普通なら

aout1.write( value )

みたいに使うんですが、どうなってんだかわけわかんないしもうつかれたので次のようにします。

※4bit左シフトしようが何しようがもう何が基準だかシフトしてるんだかしてないんだかわかんないので。

DAC->DHR12R1 = value & 0xfff;

DAC->DHR12R2 = value & 0xfff;

レジスタ直叩き。

最初からレジスタ叩くことを考えていて、実際以前そういうポストもしてるんですが、おそらくmbed osにちょっかいだされてこれだとうまくうごかなかったので、んでanalogout_api.cいじったり、そこからのレジスタ直叩き。

これでいいでしょもう。

やっと思ったとおりに動くようになりましたよ。

mbed疲れすぎる。