野火stm32开发板原理图
- 格式:pdf
- 大小:103.03 KB
- 文档页数:1
野⽕F1开发板STM32案例-外部中断(按键)使⽤野⽕F1开发板STM32案例-外部中断(按键)使⽤硬件平台野⽕STM32F103ZET6 霸道V2开发板正点原⼦F1系列开发板软件平台Keil MDK 5.31串⼝调试助⼿Gitee .中断相关概念中断配置寄存器# 配置中断时,使⽤ISER、 ICER 和 IP 寄存器,## ISER 是中断使能寄存器## ICER 是中断清除寄存器## IP 是中断优先级寄存器中断优先级1. 数值越⼩,优先级越⾼2. STM32F103 中只使⽤4位,⾼4位有效。
3. ⽤于表达优先级的⾼ 4 位⼜被分组成抢占式优先级和响应优先级,称为“亚优先级”或“副优先级”4. 每个中断源都需要被指定这两种优先级。
中断配置步骤1.使能外设中断6. 设置中断优先级分组初始化 NVIC_InitTypeDef 结构体,设置抢占优先级和响应优先级,使能中断请求。
typedef struct{uint8_t NVIC_IRQChannel; //中断源uint8_t NVIC_IRQChannelPreemptionPriority; //抢占优先级uint8_t NVIC_IRQChannelSubPriority; //响应优先级FunctionalState NVIC_IRQChannelCmd; //中断使能或失能} NVIC_InitTypeDef;NVIC_IRQChannel 中断源:中断源的设置,不同的外设中断,中断源不⼀样NVIC_IRQChannelPreemptionPriority //抢占优先级NVIC_IRQChannelSubPriority //响应优先级NVIC_IRQChannelCmd //中断使能或失能:使能配置为 ENABLE,失能配置为 DISABLE。
NVIC_IRQChannel //中断源/****** Cortex-M3 Processor Exceptions Numbers ***************************************************/NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt *//****** STM32 specific Interrupt Numbers *********************************************************/WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */TAMPER_IRQn = 2, /*!< Tamper Interrupt */RTC_IRQn = 3, /*!< RTC global Interrupt */FLASH_IRQn = 4, /*!< FLASH global Interrupt */RCC_IRQn = 5, /*!< RCC global Interrupt */EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt */DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 global Interrupt */DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 global Interrupt */DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 global Interrupt */DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 global Interrupt */DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 global Interrupt */DMA1_Channel7_IRQn = 17, /*!< DMA1 Channel 7 global Interrupt */STM32F103 中断向量表EXTI外部中断1. STM32F10x 外部中断/事件控制器(EXTI)包含多达 20 个⽤于产⽣事件/中断请求的边沿检测器。
SDIO_SD卡4bit模式详解实验描述:MicroSD卡(SDIO模式)测试实验,采用4bit数据线模式。
没有跑文件系统,只是单纯地读block并将测试信息通过串口1在电脑的超级终端上打印出来。
硬件连接:PC12-SDIO-CLK:CLKPC10-SDIO-D2 :DATA2PC11-SDIO-D3:CD/DATA3PD2-SDIO-CMD :CMDPC8-SDIO-D0:DATA0PC9-SDIO-D1:DATA1库文件:startup/start_stm32f10x_hd.cCMSIS/core_cm3.cCMSIS/system_stm32f10x.cFWlib/stm32f10x_gpio.cFWlib/stm32f10x_rcc.cFWlib/stm32f10x_usart.cFWlib/stm32f10x_sdio.cFWlib/stm32f10x_dma.cFWlib/misc.c用户文件: USER/main.cUSER/stm32f10x_it.cUSER/usart1.cUSER/sdio_sdcard.c野火STM32开发板 MicroSD卡硬件原理图:SDIO简介->野火STM32开发板的CPU ( STM32F103VET6 )具有一个SDIO接口。
SD/SDIO/MMC主机接口可以支持MMC卡系统规范4.2版中的3个不同的数据总线模式:1位(默认)、4位和8位。
在8位模式下,该接口可以使数据传输速率达到48MHz,该接口兼容SD存储卡规范2.0版。
SDIO存储卡规范2.0版支持两种数据总线模式:1位(默认)和4位。
目前的芯片版本只能一次支持一个SD/SDIO/MMC 4.2版的卡,但可以同时支持多个MMC 4.1版或之前版本的卡。
除了SD/SDIO/MMC,这个接口完全与CE-ATA数字协议版本1.1兼容。
知识准备:大多数人原来没有了解过SD协议,又看到SDIO的驱动有2000多行,感觉无从下手。
详解用STM32官方库来开发自己的应用程序作者野火嵌入式开发工作室firestm32@这里用的库是ST3.0.0版本,库的源代码可从ST的官网下载到。
/mcu/familiesdocs-110.html(网址可能会有变动)首先,让我们来分析下这个库的目录结构,如下图所示:Libraries文件夹下是驱动库的源代码跟启动文件。
Project文件夹下是用驱动库写的例子跟一个工程模板。
还有一个已经编译好的HTML文件,主要讲的是如何使用驱动库来编写自己的应用程序,说得形象一点,这个HTML就是告诉我们:ST公司已经为你写好了每个外设的驱动了,想知道如何运用这些例子就来向我求救吧。
既然ST 给我们提供的美味大餐(驱动源码)就在眼前,我又何必去找品尝大餐的方法呢,还不如直接一头直接扎进大餐中,大吃一顿再说(直接阅读库的源码)。
但当我们吃的有点呛口的时候回去找下方法还是很好的。
其他三个文件作用不大,我们可以不用管它。
接下来我们重点来分析下Librarie文件夹下的内容。
Libraries\STM32F10x_StdPeriph_Driver文件夹下有inc(include的缩写)跟src(source的简写)这两个文件,src里面是每个片上外设的驱动程序,这些外设当中很多是芯片制造商在Cortex-M3核上加进去的,Cortex-M3核自带的外设是通用的,放在CMSIS文件夹下。
如下图所示:Libraries\STM32F10x_StdPeriph_Driver\inc文件夹下是每个驱动文件对应的头文件。
当我们的应用程序需要用到某个外设的驱动程序的话只需将它的头文件包含进我们的应用程序即可。
Libraries\CMSIS\Core\CM3\startup\arm文件夹下是三个汇编编写的系统启动文件,分别对应于小(LD)中(MD)大(HD)容量Flash的单片机,在我们新建工程的时候需要将它包含到我们的工程中去。