ライティングから始めるSTM32学習

皆さんこんにちは、プログラマーの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 フォルダーの下に、 COREOBJ、および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 の私の生放送ルームに来ていただければ、対面でコミュニケーションを図ります。

さて、今日の記事はここで終わります。お役に立てば幸いです。また次号でお会いしましょう。

おすすめ

転載: blog.csdn.net/rsd102/article/details/125798999