您的位置:首页 > 其它

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

2019-07-13 10:45 316 查看

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

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

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

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

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:添加所需要的外设。

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

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

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

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

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

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 参考链接

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: