系列文章目录
在实验1的基础上,改用标准外设库方式使用某个端口GPIOx端口管脚控制几个LED灯,轮流闪烁,间隔时长1秒
前言
提示:这里可以添加本文要记录的大概内容:
利用stm32标准库点亮流水灯
提示:以下是本篇文章正文内容,下面案例可供参考
一、创建.c和.h文件
先创建文件夹存放.c和.h文件
点击led文件按右键点击添加文件led.h文件
相同的步骤创建led.c文件
可以看到创建完成
点开led.h文件进行编代码
#ifndef led_H
#define led_H
void GPIO_A(void);
#endif
同理点开led.c文件
#include "stm32f10x.h"
#include "led.h"
void GPIO_A(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
编写main.c
#include "stm32f10x.h"
#include "led.h"
#include "Delay.h"
int main(void)
{
GPIO_A();
GPIO_B();
GPIO_C();
//GPIO_SetBits(GPIOA,GPIO_Pin_0);
//GPIO_ResetBits(GPIOA,GPIO_Pin_0)
//GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
//GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
while(1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_7);//
Delay_ms(500);
GPIO_ResetBits(GPIOA,GPIO_Pin_7);//
Delay_ms(500);
GPIO_SetBits(GPIOB,GPIO_Pin_7);//
Delay_ms(500);
GPIO_ResetBits(GPIOB,GPIO_Pin_7);//
Delay_ms(500);
GPIO_SetBits(GPIOC,GPIO_Pin_13);//
Delay_ms(500);
GPIO_ResetBits(GPIOC,GPIO_Pin_13);//
Delay_ms(500);
}
}
QQ视频20230924115534
二、使用kiel观察GPIO口波形
配置Debug
点击魔术棒
这里使用的是STM32f103CT8
点击如图配置。
配置好
点击Debug进行仿真
点击左上角set up
点击右上脚方框添加引脚:输入PORTA.7和PORTC.13(这里是PA口7引脚)然后按回车。选择Bit然后取消
然后再点击像钥匙那个,在点击旁边那个运行后点击×就显示波形
总结
本篇介绍了使用标准库函数进行试下流水灯代码,和如何使用kiel进行波形仿真0为高点平1为低电平。