Stm32学习笔记一————库函数法点亮LED灯

没学会走就先学会跑,先问问自己是不是天才,如果不是就一步一步慢慢来。

1、创建文件夹LED,用于存放工程文件

keil5->Project->New $\mu$Vision project,保存在LED文件夹中,工程文件命名为LED。

2、选择自己所用的芯片型号,(我用的是STM32F103C8t6)

https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw==#pic_center =30x30

3、勾选固件库

选中:CMSIS>CORE;Device>Startup;>StdPeriphDrivers>Flash;>Framework;>GPIO;>RCC;等
CMSIS>CORE:提供与 Cortex-M0、Cortex-M3、Cortex-M4、SC000 和 SC300 处理器与外围寄存器之间的接口;
Device>Startup:初始化硬件(比如系统时钟设置),初始化堆栈,安排中断向量表等等,完成这些工作后才执行main函数。
StdPeriphDrivers>Flash;>Framework;>GPIO;>RCC:添加所需要的外设。

https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw==#pic_center =30x30

4、新建mian.c文件,并添加到工程项目当中。

右击Source Group1文件夹 Add Existing Files to Group 'Source Group1'

https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw==#pic_center =30x30

5、配置Target,添加方法是点击魔术棒之后,

设置输出HEX文件 ,最终烧录到stm32中。

https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw==#pic_center =30x30

还需要添加一个全局宏定义标识符。进入 C/C++选项卡,然后在 Define 输入框连输USE_STDPERIPH_DRIVER。(==注意==:如果有多个标识符, 他们之间需要用英文的逗号隔开的)

https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw==#pic_center =30x30

6、代码

#include "stm32f10x.h"

#define uint unsigned int
#define uchar unsigned char
#define CLOCK 8  //Crystal oscillator is 8M

// xx us delay
void delay_us(uint us)
{
 uint n;      
 while(us--)for(n=0;n<CLOCK;n++);   
}

// xx ms delay
void delay_ms(uint ms)
{
 while(ms--)delay_us(1000);  
}

//Pin configuration
void GPIO_Configuration(void)
{   
  GPIO_InitTypeDef GPIO_InitStructure; 
  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; 
  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; 
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; 
  GPIO_Init(GPIOC,&GPIO_InitStructure);
}
/***************************************************************************
				main function
***************************************************************************/
int main()	
{
  //The GPIOC clock enable
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
  GPIO_Configuration();
  
  while (1)
  {
    GPIO_SetBits(GPIOC,GPIO_Pin_13);
    delay_ms(100);
    GPIO_ResetBits(GPIOC,GPIO_Pin_13);
    delay_ms(100); 
  }	
}

7 参考链接

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值