STM32F103基础篇
STM32F103基础部分的笔记。
a1314521531
这个作者很懒,什么都没留下…
展开
-
Cortex M3寄存器组
寄存器组宗旨:技术的学习是有限的,分享的精神的无限的。 1、通用目的寄存器R0~R7 R0-R7 也被称为低组寄存器。所有指令都能访问它们。它们的字长全是 32 位,复位后的初始值是不可预料的。2、通用目的寄存器 R8-R12 R8-R12 也被称为高组寄存器。这是因为只有很少的 16 位 Thumb 指令能访问它们,原创 2016-04-08 08:51:55 · 3832 阅读 · 0 评论 -
Cortex-M3工作模式与异常
Cortex-M3工作模式与异常一、工作模式 线程模式和手柄模式。当处理器处在线程状态下时,既可以使用特权级,也可以使用用户级;另一方面, handler模式总是特权级的。在复位后,处理器进入线程模式+特权级。 二、异常和中断Cortex-M3 支持大量异常,包括 16-4-1=11个系统异常,和最多 240 个外部中断——简称 IRQ。具体使用了这原创 2016-04-09 15:51:45 · 4383 阅读 · 5 评论 -
Cortex M3 NVIC与中断控制
Cortex M3 NVIC与中断控制宗旨:技术的学习是有限的,分享的精神的无限的。一、NVIC概览 ——嵌套中断向量表控制器 NVIC 的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外, NVIC 还包含了 MPU、 SysTick 定时器以及调试控制相关的寄存器。NVIC 共支持 1 至 240 个外部中断输入(通常外原创 2016-04-09 15:53:20 · 7779 阅读 · 0 评论 -
STM32开发环境
STM32开发环境宗旨:技术的学习是有限的,分享的精神的无限的。一、MDK安装 MDK 是一个集代码编辑,编译,链接和下载于一体的集成开发环境( KDE )。MDK 这个名字我们可能不熟悉,但说到 KEIL ,学过 51 的朋友就再熟悉不过了。后来 KEIL 被 ARM 公司收购之后就改名为 MDK 了,所以学过 51 的朋友是很快就可以熟悉原创 2016-04-10 14:57:15 · 2968 阅读 · 0 评论 -
STM32启动文件——startup_stm32f10x_hd.s
STM32启动文件——startup_stm32f10x_hd.s宗旨:技术的学习是有限的,分享的精神的无限的。 一、启动文件的作用 (关于启动代码的作用,前面已经提到过了,这里再啰嗦一下)(1)初始化堆栈指针 SP;(2)初始化程序计数器指针 PC;(3)设置堆、栈的大小;(4)设置异常向量表的入口地址;(5).配置外部 SRAM 作为数据原创 2016-04-10 14:57:58 · 21371 阅读 · 2 评论 -
STM32——GPIO(1)
STM32——GPIO【对单片机的操作就是控制IO口】一、GPIO(通用输入输出口)1、选定需要的引脚(对应哪一个IO口);2、配置需要的功能(输入还是输出);3、设置需要的高低电平; 二、GPIO寄存器配置寄存器:输入还是输出数据寄存器:保存输入电平或将要输出电平位控制寄存器:控制电平的输出锁定寄存器:设置某锁定引脚后,不能修改配置原创 2016-04-11 21:55:18 · 3121 阅读 · 0 评论 -
STM32——GPIO(2)
STM32——GPIO宗旨:技术的学习是有限的,分享的精神的无限的。/* GPIO_InitTypeDef结构体 */typedef enum{ GPIO_Speed_10MHz = 1, //枚举常量,值为 1,代表输出速率最高为 10MHz GPIO_Speed_2MHz, //对不赋值的枚举变量,自动加 1,此常量值为 2 GPIO_Sp原创 2016-04-11 21:55:36 · 2846 阅读 · 2 评论 -
STM32——流水灯
STM32——流水灯stm32f10x_conf.h:打开stm32f10x_gpio.h和stm32f10x_rcc.h;stm32f10x_gpio.c 和 stm32f10x_rcc.c加入工程模板中,工程模板的建立前面有介绍,这里只讲重点。【stm32f10x_rcc.c用于配置系统时钟 和外设时钟,由于每个外设都要配置时钟,所以它是每个外设都需要用到的库文件。】原创 2016-04-13 09:19:03 · 2220 阅读 · 0 评论 -
STM32——时钟系统
STM32——时钟系统宗旨:技术的学习是有限的,分享的精神的无限的。一、时钟树 普通的MCU,一般只要配置好GPIO 的寄存器,就可以使用了。STM32为了实现低功耗,设计了非常复杂的时钟系统,必须开启外设时钟才能使用外设资源。 左边开始,从时钟源一步步分配 到外设时钟。 从时钟频率来说,又分为高速时钟和低速时钟,原创 2016-04-12 09:01:05 · 2310 阅读 · 0 评论 -
STM32——系统滴答定时器
STM32——系统滴答定时器宗旨:技术的学习是有限的,分享的精神的无限的。一、SysTick【内核中】【风格:先描述一下库对寄存器的封装,再举例实现某些功能】 SysTick定时器被捆绑在NVIC中,用于产生SysTick异常(异常号: 15)。在以前,操作系统还有所有使用了时基的系统,都必须一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时原创 2016-04-13 10:31:27 · 6166 阅读 · 0 评论 -
STM32F103按键操作的另一种实现——状态机
void GPIOConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIOMode_TypeDef GPIO_Mode);#ifndef _KEY_H_#define _KEY_H_#include "HAL_gpio.h" // 换成STM32F103对应的GPIO库#include "type.h" // type.h主要是一些类型原创 2016-09-08 12:55:41 · 11815 阅读 · 3 评论 -
Cortex M3存储器映射
CortexM3存储器系统宗旨:技术的学习是有限的,分享的精神的无限的。CM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“私有外设区”。私有外设区的组件包括:闪存地址重载及断点单元(FPB),数据观察点单元(DWT),仪器化跟踪宏单元(ITM),嵌入式跟踪宏单元(E原创 2016-04-08 08:51:06 · 4188 阅读 · 1 评论 -
STM32——串口通信
STM32——串口通信宗旨:技术的学习是有限的,分享的精神的无限的。一、异步串口通信协议 STM32 的串口非常强大,它不仅支持最基本的通用串口同步、异步通信,还具有 LIN 总线功能(局域互联网)、IRDA 功能(红外通信)、SmartCard 功能。一般我们利用串口打印调试信息。 二、串口工作过程分析 我们只需要大概了原创 2016-04-15 12:00:24 · 2946 阅读 · 0 评论 -
STM32——库函数开发小结
STM32——库函数开发小结宗旨:技术的学习是有限的,分享的精神的无限的。基本上所有外设都有以下几类寄存器:【CR/DR/SR】(1)控制寄存器 xxx_CR(Control/Configuration Register):这类寄存器是用来配置、控制 相应 外 设 的 工 作 方 式 的 。 如 GPIOx_CRL、GPIOx_CRH, AFIO_EXTICR1~A原创 2016-04-15 12:01:21 · 4058 阅读 · 1 评论 -
STM32——DMA
STM32——DMA宗旨:技术的学习是有限的,分享的精神的无限的。 DMA 是为CPU分担数据转移的工作。因为DMA的存在CPU才被解放出来,它可以在 DMA 转移数据的过程中同时进行数据运算、响应中断,大大提高效率。1、DMA工作分析 数据传输的过程中,不需要内核的全程参与,所以内核可以同时进行数据运算。DMA 方式是点到点的数原创 2016-04-16 08:47:33 · 1539 阅读 · 0 评论 -
STM32——ADC
STM32——ADC宗旨:技术的学习是有限的,分享的精神的无限的。一、ADC指标 有 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行 ;ADC的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中 ;模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高 / 低阈值。对于 AD原创 2016-04-17 21:08:50 · 13235 阅读 · 0 评论 -
STM32——I2C
STM32——I2C宗旨:技术的学习是有限的,分享的精神的无限的。一、I2C协议 I 2 C (Inter-Integrated Circuit)协议是由 Philips 公司开发的,由于它具备引脚少、硬件实现简单、可扩展性强、不需要如 USART、CAN 的外部收发设备等特点,现在被广泛地使用在系统内多个集成电路(IC)间的通信。1、物理层(原创 2016-04-18 11:39:27 · 2450 阅读 · 0 评论 -
STM32——EEPROM
STM32——EEPROM宗旨:技术的学习是有限的,分享的精神的无限的。一、I2C接口读写EEPROM(AT24C02) ——主模式,分别用作主发送器和主接收器。通过查询事件的方式来确保正常通信。1、I 2C接口初始化 与其他对GPIO 复用的外设一样,它先调用了用户函数I2C_GPIO_Confi g() 配置好 I 2原创 2016-04-19 10:32:50 · 18549 阅读 · 1 评论 -
STM32——SPI接口
STM32——SPI接口宗旨:技术的学习是有限的,分享的精神的无限的。一、SPI协议【SerialPeripheral Interface】 串行外围设备接口,是一种高速全双工的通信总线。在ADC/LCD等与MCU间通信。1、SPI信号线 SPI 包含 4 条总线,SPI 总线包含 4 条总线,分别为SS 、SCK、MOSI、MI原创 2016-04-19 18:27:14 · 34822 阅读 · 7 评论 -
单片机中通用的类型别名
单片机中通用的类型别名#ifndef _TYPE_H_#define _TYPE_H_#ifdef __GNUC__#define __packed __attribute__((aligned(1)))#endif/* exact-width signed integer types */typedef signed char int8_t;type原创 2016-08-26 09:28:45 · 1180 阅读 · 0 评论 -
STM32 LED灯的另一种写法
STM32 LED灯的另一种写法#ifndef __BSP_LED_#define __BSP_LED_#include // 这个换成STM32的库文件就行#include "type.h"//==================================================================================#define LE原创 2016-08-26 15:37:42 · 4523 阅读 · 2 评论 -
STM32——按键
STM32——按键宗旨:技术的学习是有限的,分享的精神的无限的。一、GPIO工作模式1、当I/O端口配置为输入时:输出缓冲器被禁止施密特触发输入被激活根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器对输入数据寄存器的读访问可得到I/O状态2、当I/O端口被配置为输原创 2016-04-14 12:38:30 · 2176 阅读 · 2 评论 -
MDK临界区
Keil临界区/*********************************************************************************************************** Function name: __ENTER_CIRTICAL, __EXIT_CIRTICAL** Descriptions:原创 2016-08-29 09:07:52 · 1012 阅读 · 0 评论