本实验所采用的开发板为正点原子的MiniSTM32f103rc开发板,主函数程序如下,注释如下:main.c

#include "stm32f10x.h"

void Delay(u32 count)

{

u32 i=0;

for(;i

}

int main(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); //使能PA,PD端口时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 端口配置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz

GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA.8

GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 输出高

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PD.2 端口配置, 推挽输出

GPIO_Init(GPIOD, &GPIO_InitStructure); //推挽输出 ,IO口速度为50MHz

GPIO_SetBits(GPIOD,GPIO_Pin_2); //PD.2 输出高

while(1)

{

GPIO_ResetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOD,GPIO_Pin_2);

Delay(3000000);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_ResetBits(GPIOD,GPIO_Pin_2);

Delay(3000000);

}

}

 如果使用正点原子厂家所提供的system文件下的delay.h的头文件,可以更加方便地进行延时,利用这个头文件的延时效果如下,主要调用了我们的delay_init()函数以及后面的delay_ms()函数即可:

#include "stm32f10x.h"

#include "delay.h"

void Delay(u32 count)

{

u32 i=0;

for(;i

}

int main(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

delay_init();

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); //使能PA,PD端口时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 端口配置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz

GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA.8

GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 输出高

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PD.2 端口配置, 推挽输出

GPIO_Init(GPIOD, &GPIO_InitStructure); //推挽输出 ,IO口速度为50MHz

GPIO_SetBits(GPIOD,GPIO_Pin_2); //PD.2 输出高

while(1)

{

GPIO_ResetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOD,GPIO_Pin_2);

//Delay(3000000);

delay_ms(300);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_ResetBits(GPIOD,GPIO_Pin_2);

Delay(3000000);

}

}

 

推荐阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。