皆さんこんにちは、プログラマーのXiaohaです。
包括的な例:自動食器洗い機の共有、先週金曜日の生放送でコア基板の溶接が完了しました。基板の設計が完了し、溶接が完了しました。それで、それが正しいかどうかを確認するにはどうすればよいですか?まずは照明機能。
学習目標
- STM32開発環境構築
- STM32 Keil プロジェクトを最初から作成する
- コアボード上のLEDを点灯させます
開発環境を構築する
STM32開発環境構築リファレンス:STM32開発環境構築プロセス共有
このビデオでは、MDK5 ソフトウェアのインストール プロセス、STM32F1 パッチのインストール、および JLINK ドライバーのインストールを紹介し、テスト プロジェクトのコンパイルとダウンロードのプロセスを示します。
注意:このソフトウェアは学習専用ですので、正規品をサポートしてください。
プロジェクトの作成
ファームウェアライブラリをダウンロードする
ファームウェアライブラリ STM32F10x_StdPeriph_Lib_V3.5.0:
公式サイト:
https://www.st.com/en/embedded-software/stsw-stm32054.html
国内の時間厳守アトムによって提供されるミラー:
http://openedv.com/posts/list/6054.htm
解凍後は次の図のようになります。
このうち、stm32f10x_stdperiph_lib_um.chm はライブラリのヘルプドキュメントです。
STM32プロジェクトの作成
MDK5 を開き、プロジェクト-->新しい uVision プロジェクト...をクリックしてプロジェクトを作成します。。
プロジェクト ファイルを事前に作成したディレクトリに保存します。
私は punctual atom の開発ボードを使用しているため、プロジェクト ファイルをサブディレクトリ USER の下に置くことに慣れています。
使用するチップ モデルを選択します。コア ボードは STM32F103RET6 を使用しているため、ここでは STMicroelectronics -> STM32F1 シリーズ -> STM32F103 -> STM32F103RET6 を選択します。
注: このチュートリアルでは Keil.STM32F1xx_DFP.1.0.5.pack インストール パッケージを使用します。
[OK] をクリックした後、表示される [ランタイム環境の管理] ダイアログ ボックスを直接スキップして、次のインターフェイスを表示できます。
次のように選択したListings フォルダとObjectsフォルダを削除します。
Template フォルダーの下に、 CORE、OBJ、およびSTM32F10x_FWLibの 3 つの新しいフォルダーを作成します。
その中には、
CORE はコア ファイルとスタートアップ ファイルの保存に使用され、
OBJ はコンパイル プロセス ファイルと HEX ファイルの保存に使用され、
STM32F10x_FWLib フォルダは ST が公式に提供するライブラリ関数のソース ファイルの保存に使用されます。
USER ディレクトリは、プロジェクト ファイルの保存に加えて、main.c や system_stm32f10x.c などのファイルの保存にも使用されます。
事前に準備したファームウェア ライブラリを STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver ディレクトリにコピーし、そのディレクトリ下の src フォルダと inc フォルダを、先ほど作成した STM32F10x_FWLib フォルダにコピーします。
ファームウェア ライブラリ パッケージ内の関連する起動ファイルをプロジェクト ディレクトリ CORE にコピーします。
ディレクトリ STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport に移動し、ファイル core_cm3.c とファイル core_cm3.h を CORE にコピーします。
ディレクトリ STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm に移動し、その中にあるstartup_stm32f10x_hd.s ファイルを CORE にコピーします。
ディレクトリに移動します: STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 次に、3 つのファイル stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h を USER ディレクトリにコピーします。
次に、STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template にある 4 つのファイル main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h を USER ディレクトリにコピーします。
前の手順で追加したファイルをプロジェクト ディレクトリに追加します。
追加後のプロジェクトのディレクトリ構造は次のようになります。
コンパイル中間ファイルを設定します。コンパイル済みファイルが格納されるディレクトリは OBJ です。
ヘッダーファイルが配置されるディレクトリを設定します
構成プロジェクトに必要なマクロ定義: STM32F10X_HD、USE_STDPERIPH_DRIVER
コンパイル出力ファイル形式を設定する
プロジェクト USER の下にある main.c ファイルを開き、簡単なテスト コードを作成してコンパイルします。
ここでは、PC6 ピンを使用して LED を制御し、定期的にオン/オフします。
次のテスト コードを main.c ファイルに追加します。
#include "stm32f10x.h"
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //LED0-->PC.6 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //根据设定参数初始化 PC.6
GPIO_SetBits(GPIOC,GPIO_Pin_6); //PC.6 输出高
while(1)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_6);
Delay(3000000);
GPIO_SetBits(GPIOC,GPIO_Pin_6);
Delay(3000000);
}
}
プログラムをダウンロードする
JLINKダウンロード
- JLINK ドライバーをインストールします: Setup_JLink_V512.exe
- SWダウンロードモードの設定
ダウンロード手順:
プログラムのダウンロード後、ボードの電源を再度オンにすると、PC6 に接続されている LED が点滅し続けることがわかります。
この時点で、STM32 プロジェクト全体が作成されました。
シリアルダウンロード
最小システムコアボードには、USB to TTL シリアルポートを実現できる CH340E チップが搭載されています。最初に CH340 ドライバーをインストールし、次に Dupont ケーブルで BOOT0 を 3V3 に接続し、クリックしてプログラミングを開始し、次にリセットボタンをクリックして、ダウンロードモードに入ります。
参考文献:
[Punctual atom] MiniSTM32 開発ボード情報
具体的な操作の詳細については、今夜 8:30 にステーション B の私の生放送ルームに来ていただければ、対面でコミュニケーションを図ります。
さて、今日の記事はここで終わります。お役に立てば幸いです。また次号でお会いしましょう。