STM32实现一个简单电灯

新建工程的步骤

  • 建立工程文件夹,Keil中新建工程,选择型号
  • 工程文件夹里建立Start、Library、User等文件夹,复制固件库里面
  • 的文件到工程文件夹
  • 工程里对应建立Start、Library、User等同名称的分组,然后将文件
  • 夹内的文件添加到工程分组里
  • 工程选项,C/C++,IncludePaths内声明所有包含头文件的文件夹
  • 工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER
  • 工程选项,Debug,下拉列表选择对应调试器,Settings,Flash
  • Download里勾选Reset and Run

下面来说一下具体步骤:

一、新建工程

使用库函数的方式,需要准备一个STM32 库函数的压缩包

新建一个基于标准库的工程

新建一个文件夹叫工程模板放本次项目

固件库获取:

https://pan.baidu.com/s/1bRC6MWtC7jxyKTCUmBCnRQ?pwd=v4tw

然后找到:

固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3

\DeviceSupport\ST\STM32F10x\startup\arm下的就是STM32的启动文件

STM32程序就是从启动文件开始执行的。

将这些文件都拷贝到工程模板中,但是这样全放进去太乱了,可以新建一个文件夹叫start。

返回到STM32F10x目录

stm32f10x.h是用来描述STM32有哪些寄存器和他对应的地址的。

system_stm32f10x.csystem_stm32f10x.h是用来配置时钟的

STM32主频72MHZ,就是system文件里的函数配置的。

将这三个文件复制下来也粘贴到start文件夹下。

这两个cm3-(Cortex-M3)文件就是内核的寄存器描述.当然他还带了一些内核的配置函数,所以多了个:c文件,我们把它俩一并复制下来也粘贴到start文件夹下。

到此为止工程的必要文件就复制完成了。

返回Keil软件

双击start

点击All files

选择启动文件

按住CTRl选择这三个然后点击Add

然后点击close。

这个图标代表只读文件。

最后在工程选项里添加上这个文件夹的头文件路径,否则软件找不到.h文件

点击

添加main函数看工程是否可行。

进入工程模板文件夹,新建文件夹叫User.

右键添加组

改名为User

右键添加新文件

界面右击

然后编写一个main函数,这里注意main函数是一个int型返回值,void参数的函数。还有文件的最后一行必须要是空行,要不然会报警告。

复制代码
#include "stm32f10x.h"                  // Device header

int main(void)
{
    while(1)
    {

    }
}

点击构建,编译并建立工程

二、两种电灯方法

寄存器

复制代码
#include "stm32f10x.h"                  // Device header

int main(void)
{
	RCC->APB2ENR = 0x00000010;//打开GPIOC的时钟
	GPIOC->CRH = 0x00300000;
	//GPIOC->ODR = 0x00000000;//亮
	GPIOC->ODR = 0x00002000;//灭
	while(1)
	{
		
	}
} 

库函数

新建库文件夹

misc是内核的库函数,其他的是内核外的外设库函数。

全部复制到Library中。

这些是库函数的头文件件全部复制到Library中。

这三个复制到工程的User下。

宏定义方法:

滑到8296行

库函数的工程建法:

相关推荐
智能物联实验室15 分钟前
如何低门槛自制Zigbee 3.0温湿度计?涂鸦上新开发包,开箱即用、完全开源
嵌入式硬件·开源·硬件工程
淘晶驰AK28 分钟前
51单片机与stm32单片机,先学习哪一个?
stm32·单片机·51单片机
躺不平的小刘1 小时前
从YOLOv5到RKNN:零冲突转换YOLOv5模型至RK3588 NPU全指南
linux·python·嵌入式硬件·yolo·conda·pyqt·pip
Moonnnn.1 小时前
【51单片机学习】AT24C02(I2C)、DS18B20(单总线)、LCD1602(液晶显示屏)
笔记·单片机·学习·51单片机
wind_one13 小时前
项目:电动车报警器
stm32·单片机·嵌入式硬件
网易独家音乐人Mike Zhou3 小时前
【Python】圆柱体内部3D点云仿真及ply文件生成,圆形3D点云检测及拟合算法
stm32·单片机·mcu·物联网·算法·点云·iot
qq_411262424 小时前
大小端对SPI和QSPI显示的影响
单片机·嵌入式硬件
白书宇4 小时前
12.从零开始写LINUX内核--控制台初始化
linux·c语言·驱动开发·嵌入式硬件·microsoft·iot
✎ ﹏梦醒͜ღ҉繁华落℘6 小时前
单片机学习---字节对齐
单片机·嵌入式硬件·学习
CC呢6 小时前
基于单片机坐姿视力保护台灯
单片机·嵌入式硬件·坐姿视力保护灯