STM32学习笔记001:点亮RGB

我学习stm32使用的是f103c8t6核心板、洞洞板和外设,并没有使用开发板,我个人的观点是不要被开发板限制住,接线也是一门学问,可以同时学到些电路的知识,一举两得;我参考的是正点原子的教程,但是用的芯片和他们不一样,工程结构有借鉴,但是不完全一样,代码都是自己一行行敲的,也不涉及抄袭,就是想记录一下自己的学习过程,在这声明一下。

下载和调试器是 jlink ob ,tb上那种20多的就可以

配置MDK和建工程就跳过了,网上有详细教程,认真看看都会

工程文件里最重要是单片机的启动文件,一定要选对,比如我这个就是startup_stm32f10x_md.s,就是中等容量的f103芯片

下面上代码,注释都很清晰了,点亮RGB灯和点亮LED是一样的,只是RGB要控制3种颜色,怎么混合看个人喜好啦

这是led.c

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

void LED_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC , ENABLE);  //GPIO C

	

//LED -> PC13
		 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;        //端口13
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出
  GPIO_Init(GPIOC, &GPIO_InitStructure);
	
//LED -> PC14
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
  GPIO_Init(GPIOC, &GPIO_InitStructure);
	
//LED -> PC15
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
  GPIO_Init(GPIOC, &GPIO_InitStructure);
}

 这是led.h

#ifndef __LED_H
#define __LED_H


void LED_Init(void);


#endif

main函数

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

int main(void)
{
 
	
	delay_init();
	LED_Init();
	
	
while(1)
{

	// RGB  
		
		PCout(15)=1;
		delay_ms(500);
		
		PCout(15)=0;
		delay_ms(500);
		
		PCout(14)=1;
		delay_ms(500);
		
		PCout(14)=0;
		delay_ms(500);
		
		PCout(13)=1;
		delay_ms(500);
		
		PCout(13)=0;
		delay_ms(500);
		
		PCout(15)=1;
		PCout(14)=1;
		delay_ms(500);
		
		PCout(15)=0;
		PCout(14)=0;
		delay_ms(500);
		
		PCout(15)=1;
		PCout(13)=1;
		delay_ms(500);
		
		PCout(15)=0;
		PCout(13)=0;
		delay_ms(500);
		
		PCout(13)=1;
		PCout(14)=1;
		delay_ms(500);
		
		PCout(13)=0;
		PCout(14)=0;
		delay_ms(500);
		
		PCout(15)=1;
		PCout(14)=1;
		PCout(13)=1;
		delay_ms(500);
		
		PCout(15)=0;
		PCout(14)=0;
		PCout(13)=0;
		delay_ms(500);
	

}

}

 

你可能感兴趣的:(STM32)