stm单片机介绍
系列介绍
外设介绍
型号命名规则
STM32新建工程
软件不自动新建文件夹,工程文件夹名字随意,但工程文件名字最好统一为project,方便后期复制工程
- 将固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 里面的所有文件复制到工程的Start目录
- 将固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 里面的文件复制到Start文件夹
- 将固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 里面文件复制到Start文件夹
- 在keil项目结构中选择重命名为Start,右键添加Start文件夹的文件。.s文件只选择型号对应的其中一个(如下图),.h和.c文件全选。
- keil中点击魔术棒按钮,打开工程选项,选择C/C++页,选择include paths,选择新建,选择Start文件夹
- 项目文件夹中新建User文件夹,keil项目中添加组,NewGroup重命名User,右键添加新文件main.c,路径选择User文件夹
- main.c中右键,insert include file,插入头文件,注意最后一行必须是空行,点击编译测试
#include "stm32f10x.h" int main(void){ RCC->APB2ENR = 0x00000010;//gpio时钟使能 GPIOC->CRH = 0x00300000; GPIOC->ODR = 0x00002000; while(1){} }
ps.keil点击扳手工具,选择utf8编码,可以防止中文乱码,tab大小改成4
-
keil点击魔术棒工具,选择debug页,选择stlink debugger,点击setting,勾选reset and run
-
编译成功后,点击load按钮
-
库函数操作:新建Library文件夹,将 固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src 所有文件复制到Library文件夹;将 固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc 所有文件复制到Library文件夹
-
keil添加组,改名Library,添加所有库文件
-
将 固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 的it和conf结尾的3个文件复制到User文件夹,右键User组添加文件
-
打开main.c头文件stm32f10x.h,拉到最下面发现宏定义
#ifdef USE_STDPERIPH_DRIVER #include "stm32f10x_conf.h" #endif
打开工程选项,选择C/C++,Define填入USE_STDPERIPH_DRIVER
-
include Paths 添加 Library 和User文件夹,如下图通过标准库操作
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_ResetBits(GPIOA, GPIO_Pin_0); GPIO_SetBits(GPIOA, GPIO_Pin_0);