一、前言
前面文章分享了很多关于STM32F103系列知识点、物联网相关的小项目,工程都采用的是寄存器方式编写;很多小伙伴接触STM32开始都采用库函数编程,不清楚如何使用寄存器方式开发STM32;这篇文章就讲一下如何新建寄存器风格的STM32工程,并介绍需要用到哪些官方系统文件等。
比较具有代表性的几篇物联网教程:
1. 智慧农业项目(基于腾讯物联网服务器)
2. 遥控小车项目
3. 智能门锁项目(基于腾讯物联网服务器)
4. 物联网项目(基于阿里云物联网服务器)
5. 智能家居项目(基于中国移动OneNet物联网服务器)
二、环境介绍
开发环境: keil5.25
编程语言: C语言
操作系统: win10 64位
MCU型号: ST32F103C8T6 (F103系列都是通用的,区分容量即可)
库函数的版本: 3.5 (新建工程需要用到库函数包里的一些系统必要文件)
库函数资料包下载地址: https://download.csdn.net/download/xiaolong1126626497/21469164
STM32系列简介:
STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的。
主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)
以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:
STM32L电路的设计目的是以低电压实现高性能,有效延长电池供电设备的充电间隔。片上模拟功能的最低工作电源电压为1.8V。数字功能的最低工作电源电压为1.65V,在电池电压降低时,可以延长电池供电设备的工作时间。
从应用类别来说,STM32可以有以下用处:
1. 无人机制作:现在无人机主流的微控制器所用的就是stm32控制器。
2. 简单仪器仪表:stm32可以用作简单示波器、频率计,对采集的数字信号进行处理并送入屏幕显示。
3. 机器人:常看到的就是家用的扫地机器人,还要就是国内各种机器人比赛的小型机器人,几乎都用的是stm32控制器,毕竟现在stm32接口种类齐全、功能又多、价格便宜、资料齐全。
4. 电源控制器:全国电子设计大赛常考题的电源题,很多同学制作电源首选控制器也大多会选择stm32。
三、新建工程
接下来就可以写代码点亮第一盏LED灯。
#include "stm32f10x.h"
int main()
{
while(1)
{
}
}
关键字:keil5 STM32F10x
引用地址:
基于keil5新建STM32F10x寄存器版本工程
推荐阅读最新更新时间:2024-11-01 18:54
轻松操作STM32F10X系列单片机的定时器
一、TIMx简介 通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成。它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)。使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。每个定时器都是完全独立的,没有互相共享任何资源。它们可以一起同步操作。 二、TIMx主要功能 通用TIMx (TIM2、 TIM3、 TIM4和TIM5)定时器功能包括: ● 16位向上、向下、向上/向下自动装载计数器 ● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1 ~65536之间的任意数值 ● 4个独立通道: ─ 输入捕获 ─
[单片机]
Keil5建立stm32工程
一、准备工作: 1、首先在项目名称下建立一个文件夹,作为存放程序的地方; 2、在总文件夹下,依次建立User、Driver、List、Output三个文件夹,作为存放main函数、驱动函数、编译和输出文件的子文件夹; 二、建立工程 1、打开keil软件,选择建立工程并且保存后会自动弹出如下界面: 2、选择所需的芯片类型后,自动弹出如下界面: 3、选择CMSIS下的CORE项、Device项的Startup项、StdPeriph Driver下的RCC项、framework项(这里面含有stm32f10x_config.h misc.c misc.h),这些是必选的项目。剩下的一些外设驱动可以在程序编写的过程中添加。
[单片机]
keil5如何调试程序并查看数组值
1.首先打开一个程序,点击编译按钮。 2.然后点击调试按钮,进入调试界面。 3.在需要暂停调试的语句旁鼠标右键,添加断点。(注:只有在灰色区域才能添加断点,灰色区域表示有语句部分,其不包括空白行和括号) 4.点击运行按钮,程序会运行到断点处(断点行的程序并没有运行) 5.右下角有个观察框显示数据值,可以在表达式一栏敲入自己想查看的数据。
[单片机]
STM32用keil5调试程序出现 Error:Flash Download Failed-"Cortex-M3"解决方案
一 目的:装好keil MDK 想用 在线调试 二 背景:开发环境 keil MDK 422 三 准备: 1 keil MDK 安装文件夹ARMSegger里是否有三个动态连接表 2 程序编译通过 3 jlink驱动安装好(我安装的是408版本) 四 操作步骤: 1 2 3 5 然后一路OK过去 就可以了。 6 点 进入到在线调试届满 进行调试。 注:如果没有进行第五步(根据芯片选择flash容量)会报错 Error: Flash download failed- Cortex-M3 。 、、、、、、、、、、、、、、、、、、
[单片机]
STM32CubeMx(Keil5)开发之路——3发送USART数据和printf重定向
运行环境 Windows10 STM32CubeMX___Version 5.0.0 Keil5(MDK5)___Version 5.15 简介 本例程主要讲解如何通过串口发送数据和重定向printf STM32CubeMx基本配置 基础配置过程请参考 STM32CubeMx(Keil5)开发之路—1配置第一个项目 STM32CubeMx USART1配置 1——点击USART1进行设置 2——模式选择Asynchronous异步传输 3——可以看到右边自动出现了Tx和Rx 4——可以自行设置波特率,停止位,校验位等参数 代码修改 1——选择main.c文件 2——在USER CODE中添加如下代码,重定向print
[单片机]
STM32F10X ADC多通道读取小教程(包含DMA)
前沿: ADC采样,说白了就是采集电压,这个功能是极其重要的,通常的我们的都是对各种传感器采集电压,来进行判断,开环闭环控制,今天,向大家介绍ADC的多通道采样,和DMA的采样方式。DMA的采样方式,可有效节省CMU在ADC的运行时间,提高效率,尤其是在系统构建的时候,必须要考虑好,你的效率问题。 这里我用的开发板时正点原子的MiniSTM32,芯片型号为STM32F103RCT6. This is easy, so you can do that very easily! view plain copy ***REMENBER STM32 is you! :) 我们在这里进行通俗的讲解,详细的内容,可以在以后再去看
[单片机]
基于stm32f10x单片机USB流程理解
主要思路: 文件从main.c文件到main()函数开始: 主要重点是,开启中断: USB_Interrupts_Config(); STM32不像C51单片机那样可以用过interrupt关键字来定义中断响应函数,STM32的中断响应函数接口存在中断向量表中。 其格式如下: 在文件hw_config.c里: /* Enable the USB interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; N
[单片机]
Keil5中常见错误总结
..\OBJ\HZ.axf: Error: L6218E: Undefined symbol EXTI_ClearITPendingBit (referred from stm32f10x_it.o). 意思是EXTI_ClearITPendingBit 是未定义的标识符( Undefined symbol ),referred from stm32f10x_it.o意思是在stm32f10x_it.o文件里参考。 该错误常见的原因就是定义该标识符的C文件没有包含进工程,可能是.c文件在工程里,但是相关头文件没有写,也有可能是头文件写了也声明了,但是.c文件不在工程里,这个是十分容易被遗忘的,很有可能找了很久也找不到。下面
[单片机]