自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JunoFly

技术分享

  • 博客(23)
  • 收藏
  • 关注

原创 STM32F103入门 | 3.MDK5.27 安装教程

MDK527软件下载a. 云盘下载:链接: https://pan.baidu.com/s/12piSHnLWaCabwmS1iyQJpg 提取码: 57qpb. 官网下载:http://www2.keil.com/mdk5/527preMDK527安装教程双击打开MDK527,点击Next勾选I agree to all the te...

2020-04-09 14:14:21 23810 1

原创 C语言应用笔记(七):C语言中的回调函数和使用方式

在使用 C 语言实现相对复杂的软件开发时,经常会碰到使用回调函数的问题。但是回调函数的理解和使用却不是一件简单的事,这里根据个人的理解和应用经验做浅显的分析。(一)什么是回调函数既然谈到了回调函数,那什么是回调函数呢?在讨论回调函数之前,需要说明另一个概念,那就是函数指针。什么又是函数指针?简单来讲,函数指针就是指向函数的指针,是不是跟没讲一样。说白了也是一种指针,只是它指向的不是整形、浮点型...

2020-03-14 10:33:14 4693

原创 C语言应用笔记(六):C语言extern关键字及其使用

C 语言中,修饰符 extern 用在变量或者函数的声明前面,用来标识变量或函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其他文件中寻找其定义。下面对 extern 关键字的几种用法进行说明。(1)extern 修饰变量的声明extern 关键字可以用来修饰变量,表示该变量在别的文件中已有声明。例如,我们在文件 file1.c 中声明变量:/* file1.c */int...

2020-03-14 10:29:08 4983

原创 C语言应用笔记(五):C语言typedef关键字及其使用

C 语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指针变量的类型与函数的类型等。typedef 关键字定义的名称并不是真的创造了一种数据类型,而是给已有的或...

2020-03-14 10:00:37 4276

原创 C语言应用笔记(四):C语言volatile关键字及其使用

在 C 语言中,还有一个并不常用但却非常有用的关键字 volatile。volatile 总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值、在哪里使用、在哪里失效,分析结果可以用于常量合并,常量传播等优化,进一步可以消除一些代码。但有时这些优化不是程序所需要的,这时可以用 volatile 关键字禁止做这些优化。volatile 的本意是“易变的” ,因为访问寄存器要...

2020-03-14 09:55:43 4312

原创 C语言应用笔记(三):C语言const关键字及其使用

在 C 语言程序中,const 关键字也是经常会使用到的一个关键字,const 用来修饰常量,如果一个变量被 const 修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C 语言中不是有 #define 吗,干嘛还要用 const 呢,我想 const 的存在一定有它的合理性,与预编译指令相比,const 修饰符有以下的优点:1、预编译指令只是对值进行简单的替换,不能进行类型检查;...

2020-03-14 09:49:41 4267

原创 C语言应用笔记(二):C语言static关键字及其使用

在C语言中,static 的字面意思容易给我们带来些许误解,在开发过程中,我们经常会需要定义一些 static 类型的变量和函数,所以我们具体聊聊 static。static 在 C 语言中的三大作用:一、隐藏功能,对于 static 修饰的函数和全局变量而言;二、保持持久性功能,对于 static 修饰的局部变量而言;三、由于存放在静态区,全局和局部的 static 修饰的变量,...

2020-03-14 09:38:07 3911

原创 C语言应用笔记(一):运算符优先级和使用问题

C 语言运算符是说明特定操作的符号,它是构造 C 语言表达式的工具。C 语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。 C 语言中的运算符绝对是 C 语言学习和使用的一个难点,因为在2011版的标准中,C 语言的运算符的数量...

2020-03-14 09:13:26 4619

原创 STM32F103入门 | 16.ADC实验

16.1 ADC简介Analog-to-Digital Converter 的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。在存储或传输时,模数转换器几乎必不可少。STM32 在片上集成的 ADC 外设非常强大,STM32F103 属于增强型 CPU,它有 18 个通道,...

2019-05-01 09:08:06 29318 13

原创 STM32F103入门 | 15.输入捕获

15.1 输入捕获概述系统滴答定时器一般用来提供“心跳”作用,而STM32定时器最基本功能也是定时,可以设置不同时间长度的定时。定时器除了最基本的定时功能外,定时器与GPIO有挂钩使得它可以发挥强大的作用,比如可以输出不同频率、不同占空比的方波信号、PWM信号,同时做为输入捕获功能时,可以测量脉冲宽度、实现电容按键检测等等。STM32的输入捕获,简单的说就是通过检测 TIMx_CHx...

2019-05-01 09:02:41 10587 2

原创 STM32F103入门 | 14.USART串口通信

14.1 USART定义USART(Universal Synchronous/Asynchronous Receiver/Transmitter,即通用同步/异步收发器)串行通信是单片机最常用的一种通信技术,通常用于单片机和电脑之间以及单片机和单片机之间的通信。14.2 USART串行通信协议14.2.1 波特率和数据格式USART通信中的同步通信功能很少用到,大多情况下只...

2019-05-01 08:58:22 11733 1

原创 STM32F103入门 | 13.PWM控制舵机

13.1 什么是舵机舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。它的特点是结构紧凑、易安装调试、控制简单、大扭力、成本较低等。舵机的主要性能取决于最大力矩和工作速度(一般是以秒/60°为单位)。舵机能够在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出值使得单片机系统很容易与之连接进行控制。上图中的三根线:橙色 ----...

2019-05-01 08:49:18 16219 8

原创 STM32F103入门 | 12.PWM实现呼吸灯

重要补充:由于STM32F103入门这个系列的教程都是基于6.工程模板的建立里面的那个工程模板进行编程的,所以,在6.工程模板的建立的第 (11) 那里,LIB 需要添加<src>文件夹中所有的 .c 文件。(不然的话,从9.定时器简述开始,编译器就会疯狂报错啦)12.1. PWM简介PWM全称为“Pulse Width Modulation”。中文翻译...

2019-05-01 08:45:52 20663 5

原创 STM32F103入门 | 11.按键实验(下)

对于按键,常见的是通过MCU不断检测按键连接GPIO的状态变化(高-->低或低-->高),来确认是否有按键输入,比如上一篇按键实验(上)。但是,轮询方式的缺点很明显,MCU一直在循环检测,对资源是一种浪费,不够高效。对于STM32,其 GPIO 是可以配置成中断的,有这个优势,我们就可以通过中断的方式来检测 GPIO 上电平的变化,进一步的得到按键的状态。按键电路和按键实验(...

2019-04-22 18:24:01 10193

原创 STM32F103入门 | 10.按键实验(上)

之前的点亮小灯实验用到了GPIO的输出模式,但是对于输入模式没有用到,这次小R给小伙伴们介绍GPIO的其中一种输入模式——上拉输入。按键出现在很多的应用场景,按键处理更是一门学问。因此,小R给小伙伴们介绍GPIO的上拉输入模式并简单应用于按键实验中,通过判断按键的状态来控制LED灯的亮灭情况。首先,需要了解的是:当IO做输入使用时,通过调用函数GPIO_ReadInputDataBit(...

2019-04-22 18:18:49 11390 1

原创 STM32F103入门 | 9.定时器简述

STM32F103系列的单片机一共有11个定时器:2个高级定时器4个通用定时器2个基本定时器2个看门狗定时器1个系统滴答定时器除去看门狗定时器和滴答定时器,其他8个定时器列表:其中,TIM1和TIM8是高级定时器TIM2 - TIM5是通用定时器TIM6和TIM7是基本定时器这8个定时器都是16位的,它们计数的类型除了基本定时器TIM6和TIM...

2019-04-22 18:13:08 10263

原创 STM32F103入门 | 8.精准延时

在工程模板的建立和点亮灯小实验中,我们可以发现其中都用到了延时函数Delay。比如点亮小灯那里: Delay(900000); 相信很多小伙伴刚开始看到这句的时候会觉得:哇~好大的数字,这是要等到花儿都谢了的节奏吗!其实,把代码下载到开发板观察LED闪烁的时候,它的闪烁频率还是非常快的......诚然,我们需要一个比较准一点的延时方案。这个延时功能既要实在,又得优雅。既然这样,我们可以写...

2019-04-22 18:02:17 12527

原创 STM32F103入门 | 7.点亮灯小实验

7.1 前言为方便实验的进行,在实验进行之前说明一下Keil的一些设置打开Configuration-Editor其中Encoding选择Chinese GB2312,Tab size选择4Configuration-User Keywords中可以自己添加用户关键字,这里先添加u8,u16,u32Configuration-Text Com...

2018-12-31 11:15:32 11032

原创 STM32F103入门 | 6.工程模板的建立

1.在磁盘根目录创建文件夹,命名为Template,并在该文件夹中创建CORE,LIB,OBJ,USER四个文件夹。2.打开Keil uVision5,选中Project中的New uVision Project 选择文件夹路径及工程名。3.选择STM32F103C8芯片后点击OK。4.点击Cancel。5.打开Template-USER,删除Lis...

2018-12-30 11:07:06 13289 35

原创 STM32F103入门 | 5.Keil 5菜单详细介绍

5.1 前言上一篇文章重点介绍了Keil 5的菜单栏快捷按钮,相信小伙伴们已经对这款开发工具有个底了。本文继续给小伙伴们带来菜单下内容的详细介绍。本文以Keil MDK-ARM为例,Keil系列的其他的版本也同样适用。5.2 菜单介绍5.2.1 文件(File)菜单1.New: 新建文件Ctrl+N2.O...

2018-12-30 11:00:51 16913 3

原创 STM32F103入门 | 4.Keil 5主窗口和工具栏概述

4.1 前言为了让小伙伴们更快速地上手Keil MDK-ARM V5,本文先让小伙伴们简单了解一下Keil的主窗口界面以及工具栏。之所以有工具栏,是因为有些快捷按钮在编程开发时使用频率较高,所以为了方便使用者使用,就把某些常用的快捷按钮归结在一起,于是就出现了工具栏。本文主要讲解Keil MDK-ARM V5 的工具栏,Keil系列其他版本也同样适用。4.2 主窗口界...

2018-12-30 10:57:04 12706

原创 STM32F103入门 | 2.STM32F103xx内部资源介绍

2.1STM32F103xx增强型LQFP48引脚分布2.2 STM32F103xx概述2.2.1ARM®的Cortex™-M3核心并内嵌闪存和SRAMARM的Cortex™-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。ARM的Corte...

2018-12-30 10:44:06 29841 2

原创 STM32F103入门 | 1.STM32F103介绍

1.1 开发板简介STM32F1入门学习将使用STM32F103C8T6开发板最小系统板。小R为什么选择它来入门呢?咳咳~首先,ST官方提供强大且易用的标准库函数,使得开发过程方便快捷;其次,网上的教程资料多也十分详细。所以呢,它对高校学生和广大初学者入门都是一个非常好的选择。开发板的主要参数如下:型号:STM32F103C8T6封装类型:LQFP引脚个数:48...

2018-12-30 10:35:32 51616

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除