哪种技术做网站容易论文答辩,网站调用字体库,手机网站判断跳转代码怎么写,东莞住房与城乡建设网站学习来源#xff1a;[2-2] 新建工程_哔哩哔哩_bilibili
目前STM32的开发主要有基于寄存器的开发方式、基于标准库也就是库函数的方式和基于HAL库的方式。本学习是基于库函数的方式。#xff08;各种资料去百度云下载#xff09;
1 建立工程文件夹
Keil中新建工程#xf…学习来源[2-2] 新建工程_哔哩哔哩_bilibili
目前STM32的开发主要有基于寄存器的开发方式、基于标准库也就是库函数的方式和基于HAL库的方式。本学习是基于库函数的方式。各种资料去百度云下载
1 建立工程文件夹
Keil中新建工程选择型号 选择相应的芯片型号STM32F103C8T6 关掉工程小助手 2 在工程文件夹中新建文件
工程文件夹里建立Start、复制固件库里面的文件到工程文件夹
2.1 STM32的启动文件
在工程文件夹里新建start文件夹 找到STM32的启动文件
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 和
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\ stm32f10x.h是STM32的外设寄存器描述文件作用和51单片机的REGX52.H一样是用来描述STM32有哪些寄存器和它对应的地址的。
两个System文件主要是用了配置时钟的。STM32主频72MHz就是System中的函数配置的。
复制到Start文件夹中。
因为这个STM32是内核和内核外围的饺备组成的所以添加内核寄存器的描述文件到Start文件下
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 2.2 将复制的文件添加到工程 添加启动文件为什么选这个后面会说 剩下的.c和.h文件都要添加进来结果如图 2.3 在工程选项中添加头文件的路径
添加start的路径 2.4 新建main函数
先在工程目录下添加User文件夹再在界面新建User目录添加c文件将路径改到User下 #include stm32f10x.h // Device headerint main(void)
{while(1){}}编译 这个工程目前还没有添加STM32的库函数所以它还是基于寄存器开发的工程。想使用寄存器开发STM32到这里就可以了但是我们是基于库函数的学习。
调编码格式UTF-8、字体、缩进 2.5 通过配置寄存器来完成点灯实验
【了解】 配置调试器 再点击设置按钮 勾上选项之后。我们下载程序后会立马复位并执行。这样方便些。
打开STM32的参考手册STM32F10xxx参考手册
a首先是RCC的寄存器来使能GPIO的时钟GPIO都是APB2的外设 RCC Reset and Clock Control即复位和时钟控制。 APB2 外设时钟使能寄存器(RCC_APB2ENR) 这一位就是使能GPIOC的时钟的 写1是打开时钟即
RCC-APB2ENR 0x00000010;
b需要配置PC13口的模式端口配置高寄存器(GPIOx_CRH) (xA..E) CNF13和MODE13就是配置13号口的
CNF配置为通用推挽输出模式MODE配置为输出模式。 即 其他全为0
GPIOC-CRH 0x00300000;
cGPIO输出数据 测试代码
#include stm32f10x.h // Device headerint main(void)
{RCC-APB2ENR 0x00000010;GPIOC-CRH 0x00300000;GPIOC-ODR 0x00000000; // 低电平点亮
// GPIOC-ODR 0x00002000; // 灭while(1){}}需要不断查手册来了解寄存器的功能。不方便
2.6 通过库函数实现点灯实验
在工程目录下新建Library文件夹将下述文件夹下的所有文件粘贴到Library下库函数的源文件和头文件
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc 结果如图 此时库文件还不能使用需要再添加配置文件将下述文件粘贴到User路径下再在keil中将新加的文件加入
\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 结果如图 最后需要一个宏定义 USE_STDPERIPH_DRIVER
将文件夹添加进来 代码步骤和配置寄存器是一样的
1配置时钟-RCC_APB2PeriphClockCmd 本质函数配置寄存器
2配置端口模式-GPIO_Init 两个参数GPIO_TypeDef* GPIOx和GPIO_InitTypeDef* GPIO_InitStruct
GPIOx选择GPIOC即可
GPIO_InitStruct是一个结构体 GPIO_Pin GPIO_Mode GPIO_Speed 测试代码
#include stm32f10x.h // Device headerint main()
{// 使能时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);// 配置端口模型GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;// 设置端口的高低电平// 低电平点亮
// GPIO_SetBits(GPIOC, GPIO_Pin_13); // 高电平 灭GPIO_ResetBits(GPIOC, GPIO_Pin_13); // 低电平 亮GPIO_Init(GPIOC, GPIO_InitStructure);while (1){}}3 型号分类及缩写 前面选择启动文件的时候选择后缀为md的文件。我们的型号是STM32F10364k 4 总结新建工程
建立工程文件夹Keil中新建工程选择型号工程文件夹里建立Start、Library、User等文件夹复制固件库里面的文件到工程文件夹工程里对应建立Start、Library、User等同名称的分组然后将文件夹内的文件添加到工程分组里工程选项C/CInclude Paths内声明所有包含头文件的文件夹工程选项C/CDefine内定义USE_STDPERIPH_DRIVER工程选项Debug下拉列表选择对应调试器SettingsFlash Download里勾选Reset and Run
5 工程架构