STM32F103C8Z6流水灯程序

Posted 路漫求索

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F103C8Z6流水灯程序相关的知识,希望对你有一定的参考价值。

led.h

#ifndef __LED_H
#define	__LED_H

#include "stm32f10x.h"

#define ON  0
#define OFF 1

#define LED1(a)	if(a)GPIO_SetBits(GPIOC,GPIO_Pin_13);else GPIO_ResetBits(GPIOC,GPIO_Pin_13);

void LED_GPIO_Config(void);

#endif 

led.c

#include "led.h"
#include "stm32f10x.h"
void LED_GPIO_Config(void)	
{
  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE); // ê1?üPC???úê±?ó  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;	//??????ó|μ?òy??
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOC, &GPIO_InitStructure);  //3?ê??ˉPC???ú
  GPIO_SetBits(GPIOC, GPIO_Pin_13 );	 // 1?±??ùóDLED
}

main.c


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

void Delay(__IO u32 Count)
{
  for(; Count != 0; Count--);
} 

int main(void)
{	    
 SystemInit();	// ?????μí3ê±?ó?a72M 	
 LED_GPIO_Config(); //LED ???ú3?ê??ˉ 
  while (1)
  {
		LED1( ON );			  // áá
		Delay(0x200000);
		LED1( OFF );		  // ?e
		Delay(0x200000);	
  }
}


STM32使用姿势

1、main.c里include stm32f10x.h

2、配置系统时钟/为72M

GPIO使用流程

GPIO初始化

使能时钟

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);

选择引脚

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;

配置输入输出方式

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

配置IO口速度

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

调用GPIO口初始化函数

GPIO_Init(GPIOC, &GPIO_InitStructure);

将IO口置为高电平或低电平

GPIO_SetBits(GPIOC,GPIO_Pin_13);
GPIO_ResetBits(GPIOC,GPIO_Pin_13);

使用示例

#define LED1(a)	if (a)						GPIO_SetBits(GPIOC,GPIO_Pin_13);					else							GPIO_ResetBits(GPIOC,GPIO_Pin_13)

其中define里面换行需使用斜杆\

以上是关于STM32F103C8Z6流水灯程序的主要内容,如果未能解决你的问题,请参考以下文章

STM32F103C8T6点亮LED流水灯

嵌入式08STM32F103C8T6寄存器方式借助面包板点亮LED流水灯详解

stm32f103c8 跳转到应用程序不起作用

问题编程和运行STM32F103C8

基于STM32F103C8Tx芯片实现的应答式串口数据管理器逻辑分析与程序实现

STM32f103c8 gpio限速