STM32からロシアのマイクロコントローラーK1986BE92QIに渡します。 keilでプロジェクトを設定し、LEDを点滅させる

エントリー


前回の記事では、受け取ったキットの個人的な印象を共有し、MT-LINKを使用したデモプロジェクトでコントローラーをプログラムしました(これも提供されていました)。 キット全体を詳細に検討したので、今度はキットを使い始めましょう。
せっかちな人のために-結果。



K1986BE92QIのKeil 5で空のプロジェクトを作成します。


まず、クリーンなプロジェクトを作成する必要があります。 もちろん、デモンストレーションプロジェクトをベースとして使用できますが、番号「2」のプロジェクトは開始されず、何らかの理由でプロジェクト「3」にコントローラー選択メニューに空白のシートがあります。 それはどういうわけか私を守った。 番号「1」のプロジェクトは原則的にはありません。


最も単純なプログラムをコンパイルします。


メイン関数に、カウンターが1増加する無限ループを挿入します。これで、ファイルは次のようになります。



各ファイルの最後は空行であることを忘れないでください。 Keilはこれを警告と見なし、しばしばあなたの神経を痛めます。 もちろんコンパイルされますが、警告自体は驚くべきものです。
これでセットアップは完了です。 F7キーを押すと、プロジェクトを再コンパイルできます。 すべてがうまくいけば、あなたはそれを見るでしょう。


これで、設定でJ-LINKを設定するだけになり、アップロードできます。 構成方法については、前の記事で詳しく説明しました。

ところで。 J-LINKは追加の電源を接続せずにチップを認識し、チップをデバッグすることもできます。 したがって、外部電源は実際には必要ありません。 コードの行をナビゲートすると、画面がどのようにちらつくかがわかります。

LEDを操作するためのコントローラーフットの調整


ドキュメントの目次を確認しても、周辺のタイミングについては何も表示されなかったため、すぐに調整を開始しました。 STM32でI / Oポートを構成するという点でSPLのすべての恐ろしさを思い出して、バンドルされたライブラリを使用するという考えはすぐに消えました。 そして、そのようにすぐに、レジスターをいじる時間がない、ライブラリの後ろに隠れることはよくありません。ところで、間違いは排除されません。

まず、設定する必要があるポートを理解します。 ファイル1986EvBrd_64_Rev2.pdfがあります。このファイルには、「Debug Board198692、198692QI(MDR32F9Q2I)\ Printed circuit board 1986EvBrd_LQFP64」に回路図があります。 その上で、2つのLEDがピンPC0とPC1に接続されていることがわかります。 素晴らしい。 変位に苦しむ必要はありません。



Milanderには、チップラインに関するすべての情報が1つのドキュメントに収められていることがとても気に入りました。 STM32はドキュメントで非常に混乱しています... I / Oポート図を見てください。 リモートで何かがSTM32のポート回路に似ています。 目を引くものは何も見えないので、レジスタをセットアップします。



Milanderが彼のポートにどのように名前を付けたのか正確にはわからなかったので、ポート構成ライブラリに登りました。 そこで私は以下を見ました。



まあ、もう少し高い。



ポートCのアドレスがデータシールドのアドレスと一致することを確認した後、main.cファイルに新しい関数を作成しました(上記のmain関数を使用してください!それ以外の場合は、.hファイルに関数のプロトタイプを記述する必要があります。これは今のところ不要な問題です)。

PORTC->(習慣ではない)の記述を開始し、ctrl +スペースを押したままにして、以下を確認します。



これはおなじみの絵です。 とても幸せでした。 その後、彼はどのレジスタを変更する必要があるかを見始めました。



ポート "0"にLEDが必要なので、次のように記述できます。PORTC-> RXTX | = 1;

これにより、ポートの0番目のビットが1に変換されます。したがって、ポート0のダイオードを点灯します。しかし、オンにする前に、構成する必要があります...
したがって、このアクションは最後に実行されます。



出口があるので、 PORTC-> OE | = 1;



デフォルトではゼロはどこにでもあるので、そのままにしておきます。



そして、ここではデジタルが必要です。PORTC-> ANALOG | = 1;



エレベーターは必要ないので、スキップしてください。



まあ、私たちもそれを必要としません...



そして、ここで速度を選択する必要があります。 デフォルトではそれだけです。 遅い前線を選択してください。 LEDについては、 PORTC-> PWR | = 1;



さて、最後のレジスタ。 一般的に私には以前のことは知らない。 これはまだ見られない。

さて、これで設定は完了です。 しかし、今このコードを縫うと、何も機能しません。 私は長い間、問題が何であるかを理解しようとしましたが、再びタイミングシステムについて注意深く読みました。 ポートセクションにクロッキングについての言葉はありません。 しかし、別の章があり、どのように、どのように行動するかが書かれています。 私はそこに行って、次を見ました。



ポートが必要です。 これは、周辺ユニットの説明に適合します。 このレジスタとここを探しています。



キールがこのレジスターを何と呼ぶか​​を理解することだけが残った。 私は図書館で実際に何も見つけられなかったので、私は選択を行いました。 その結果、RST_CLKと呼ばれることが判明しました。 それでは、目的のブロックに「1」を書き込むだけです。

RST_CLK-> PER_CLOCK | =(1 << 23);
偶然PER_CLOCKに来ました。 「RST_CLK」を書いたとき、ctrl +スペースを押し、リストが表示された後、「p」を押しました。 適切なオプションを選択した後。

結果はそのようなコードです。



コードがコンパイルされ、取得されます。



keil 5でのロシアのコメント


コードごとにコメントを配置する価値はありますが、ロシア語ではこれを行うことはできません。 不可解な文字が出てきます。ロシア語のコメントを書くためには、編集->設定に行く必要があります。



そして、図に示すように、エンコードを変更します。 次に「OK」をクリックします。



LED点滅

次に、サイクルを使用してLEDで点滅するコードを作成します。



縫って喜ぶ! 速度は、STM32でLEDを点滅させる経験から取得されます。 LEDは約1秒間に1回点滅します。

それだけです 何も欠けていないようです。 このプロジェクトをすぐにアーカイブすることをお勧めします。 次に、空白として使用します。

githubのプロジェクト

もう一度思い出します。 プロジェクト設定には、「C:\」に関するプロジェクトディレクトリへのリンクが1つあります。 したがって、プロジェクトは記事と同じパスでのみ機能します。 方法を簡単に変更して自由に使用できます。
修正してくれたsguwenkaに感謝します。

Source: https://habr.com/ru/post/J255323/


All Articles