STM32F103ZET6 学習ノート - マーキー実験(ライブラリ機能)

1. まず、プロジェクト ディレクトリに PROGREAM (好みに応じて名前を付けます) フォルダーを追加し、このフォルダーの下にサブフォルダー 1_LED を作成し、次に 1_LED の下に led.c および led.h ファイルを作成して、led を変換する必要があります。 c と led.h がプロジェクトに追加されます。ヘッダー ファイルのパスに 1_LED を忘れずに追加してください。詳細は前のメモに記載されています。忘れた場合は、戻って確認できます。

 

 

 2、led.c ファイルと led.h ファイルを作成します。

1、led.h:

#ifndef __LED_H
#define __LED_H

void LED_Init(void);//函数声明


#endif

2、led.c:

IO ポートを操作する手順は次のとおりです。

(1) IO ポートクロックを有効にし、関数 RCC_APB2PeriphColckCmd() を呼び出します。

(2) IO ポート モードを初期化し、関数 GPIO_Iint() を呼び出します。

(3) IO ポートを操作してハイレベルとローレベルを出力します。

具体操作:

        1) 開発ボードの回路図によると、LED0 と LED1 はそれぞれ開発ボードの PB5 と PE5 に接続されているため、最初に PB5 と PE5 のクロックを有効にする必要があります。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//GPIOB
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//GPIOE

        2) IO グループを有効にした後、最初に対応する構造を定義し、次に対応するピン番号、モード、速度を設定し、最後に IO ポートの出力レベルを設定する必要があります。

    GPIO_InitTypeDef GPIO_InitStr;//定义GPIO_Init结构体    

    GPIO_InitStr.GPIO_Mode=GPIO_Mode_Out_PP;//设置为推挽输出
	GPIO_InitStr.GPIO_Pin=GPIO_Pin_5;//设置PB5
	GPIO_InitStr.GPIO_Speed=GPIO_Speed_50MHz;//设置速度为50Mhz
	GPIO_Init(GPIOB,&GPIO_InitStr);//初始化PB
	GPIO_SetBits(GPIOB,GPIO_Pin_5);//PB5输出高电平
	
	//同PB5
	GPIO_InitStr.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStr.GPIO_Pin=GPIO_Pin_5;
	GPIO_InitStr.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOE,&GPIO_InitStr);
	GPIO_SetBits(GPIOE,GPIO_Pin_5);

        3) led.c のコード全体:

#include"led.h"
#include"stm32f10x.h"

void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStr;//定义GPIO_Init结构体
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//GPIOB
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//GPIOE
	
	GPIO_InitStr.GPIO_Mode=GPIO_Mode_Out_PP;//设置为推挽输出
	GPIO_InitStr.GPIO_Pin=GPIO_Pin_5;//设置PB5
	GPIO_InitStr.GPIO_Speed=GPIO_Speed_50MHz;//设置速度为50Mhz
	GPIO_Init(GPIOB,&GPIO_InitStr);//初始化PB
	GPIO_SetBits(GPIOB,GPIO_Pin_5);//PB5输出高电平
	
	//同PB5
	GPIO_InitStr.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStr.GPIO_Pin=GPIO_Pin_5;
	GPIO_InitStr.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOE,&GPIO_InitStr);
	GPIO_SetBits(GPIOE,GPIO_Pin_5);
}

3、主な機能:

#include"stm32f10x.h"
#include"led.h"
#include"delay.h"

int main(void)
{
	delay_init();
	LED_Init();
	
	while(1)
	{
		GPIO_SetBits(GPIOB,GPIO_Pin_5);
		GPIO_SetBits(GPIOE,GPIO_Pin_5);
		delay_ms(500);
		
		GPIO_ResetBits(GPIOB,GPIO_Pin_5);
		delay_ms(500);
		GPIO_ResetBits(GPIOE,GPIO_Pin_5);
		delay_ms(500);
	}
	
}

おすすめ

転載: blog.csdn.net/qq_63306482/article/details/126223428