(一)stm32之CMSIS标准、库目录、GPIO

发布者:beta12最新更新时间:2017-02-04 来源: eefocus关键字:stm32  CMSIS标准  库目录  GPIO 手机看文章 扫描二维码
随时随地手机看文章

一、CMSIS标准

  ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU。该内核是ARM公司设计的一种处理器体系架构。内核与外设的关系就像PC上的CPU与硬盘、主板、内存等的关系一样。

基于cortex系列的处理器内核都是一样的,区别在于除内核以外的外设的差异,由于这些差异,导致不同处理器移植起来比较麻烦,所以ARM与芯片厂商建立了CMSIS标准,CMSIS架构如下所示:

  CMSIS标准中最主要的是CMSIS核心层;内核函数层中的内核函数寄存器以及地址主要由ARM公司提供;设备外设访问层核外外设和中断寄存器地址由芯片生产厂商定义。

二、库目录和文件简介

1、core_cm3.c文件

  在CoreSupport文件夹中有core_cm3.c和头文件core_cm3.h,它的作用是采用Cortex-M3内核设计的SoC芯片厂商设计的芯片提供了一个进入CM3内核的接口。core_cm3.c中还有一些与编译器(MDK、IAR等)有关的代码。较重要的是core_cm3.c中包含stdio.h头文件,这是一个ANSI C文件,主要作用是提供一些新类型的定义。

2、system_stm32f10x.c文件

  DeviceSupport文件夹下是启动文件、外设寄存器定义、中断向量定义层的一些文件,这些文件由ST公司提供。system_stm32f10x.c的主要作用是设置系统时钟和总线时钟。

3、stm32f10x.h文件

  这个文件非常重要,是非常底层的文件,包含了寄存器地址和结构体类型的定义,在使用到stm32固件库的地方都要包含它。

3、stm32f10x_it.c和stm32f10x_conf.h文件

  stm32f10x_it.c这个文件主要是编写中断程序的,stm32f10x_conf.h被包含在stm32f10x.h文件中主要是配置外设的头文件,我们需要什么在这里打开。

4、startup_stm32f10x_hd.s文件

  在这个文件中有一段启动文件,启动文件中先初始化系统时钟,然后才执行主函数,因此我们要注意配置时钟在这个文件里配置。

三、引脚端口的一些概念

1、一些寄存器

  1)配置寄存器:选择是输入还是输出。

  2)数据寄存器:保存了GPIO的输入电平或者将要输出的电平。

  3)为空值寄存器:设置引脚电平为1或0,控制输出电平。

  4)锁定寄存器:设置锁定引脚后,就不能修改其配置。

2、管脚时钟

  stm32拥有丰富的时钟系统,我们在配置管教时钟时,如果该管脚要用到其复用功能,我们必须也要初始化复用功能时钟。例如要使用PC1口的AD功能:

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);

3、GPIO8种工作模式

  1)四种输入模式:上拉输入模式、下拉输入模式、浮空输入模式、模拟输入模式

  上拉输入模式(GPIO_Mode_IPU):与VDD相连的为上拉电阻,若引脚配置为上拉输入模式,默认情况下该引脚是高电平。

  下拉输入模式(GPIO_Mode_IPD):与VSS相连的为下拉电阻,若引脚配置为下拉输入模式,默认情况下该引脚是低电平。

  浮空输入模式(GPIO_Mode_IN_FLOATING):没有上拉电阻也没有下拉电阻,一般这种模式用于标准的通信协议:IIC、USART等的接收端。

  模拟输入模式(GPIO_Mode_AIN):使用ADC外设时,接口必须设置为,模拟输入模式。

  2)四种输出模式:推挽输出模式、开漏输出模式、复用推挽输出模式、复用开漏输出模式

  推挽输出模式(GPIO_Mode_Out_PP):一般用于0和3.3伏的场合。

  开漏输出模式(GPIO_Mode_Out_OD):一般用于电平不平衡的场合。

  任何一种开漏模式都要接上拉电阻。

  复用推挽输出模式(GPIO_Mode_AF_PP)

  复用开漏输出模式(GPIO_Mode_AF_OD)

4、中断

  stm32有100个引脚,GPIO口总共80个,分为GPIOA~GPIOE 5组,每组16个。每个IO口都可以作为中断源的输入,可以配置为上升沿中断,下降沿中断,上升沿下降沿中断


关键字:stm32  CMSIS标准  库目录  GPIO 引用地址:(一)stm32之CMSIS标准、库目录、GPIO

上一篇:Linux上进行单片机开发
下一篇:(二)stm32之中断配置

推荐阅读最新更新时间:2024-03-16 15:32

《如何制作STM32开发板》之通信接口部分
上一篇文章,我们规划了一下STM32开发板串口(UART),这一篇文章介绍剩下的通信接口。我们在第一课画STM32F103VET6单片机原理图的时候,我们就看到,它除了UART,还有SPI、CAN、I2C等通信接口。 一个单片机,为什么会有这么多的通信接口?一种接口不够用么!这是一部分小伙伴的疑问。 基于单片机的电子产品,从简单的到复杂的,基本上没有只用单片机就可以完成了。这一点,大家在看到很多电子产品的电路板之后就发现了,上面有若干个芯片。带有单片机的电路板上,其他的芯片都被称作单片机的外围芯片。 根据不同的应用,有不同的外围芯片。这些外围芯片有很多种,例如加速度传感器芯片、数字收音机芯片、存储芯片、无线通信芯片、放大器芯片、温
[单片机]
《如何制作<font color='red'>STM32</font>开发板》之通信接口部分
STM32 HAL学习系列第3篇 常使用的几种延时方式
1 自带的hal_delay 函数 毫秒级延迟 void HAL_Delay(__IO uint32_t Delay) { uint32_t tickstart = HAL_GetTick(); //获取tick值(毫秒) uint32_t wait = Delay; /* Add a period to guarantee minimum wait */ if (wait HAL_MAX_DELAY) { wait++;//传参,延时的时间 } while((HAL_GetTick() - tickstart) wait) { } } 也可以配置为us延时,改变函数参数 配置方法:
[单片机]
STM32片内FLASH被异常改写的问题分享
某STM32客户反馈,当STM32F407V芯片频繁的正常通断电的时候,FLASH 会被非法改写,出现各种各样的异常(整片被擦除、中断向量表被改写、写保护被清除等等)。 经过与跟客户沟通了解到: 1、他们是延续之前的项目,进行的一些软硬件简单修改。之前的项目没有出现过类似的问题。 2、确认通断电的时间是足够,即断电后所有的VDD都回到0;上电的时序也正常。 3、原理图参考了ST相关开发板的参考设计。 4、测量工作电压,除了发觉上电时会有些许抖动外,其它一切正常。尝试让他们改善上电电路,去掉这一抖动。再次实验,仍然出现类似的问题。 根据现象初步判断,异常似乎跟硬件没关联了, 接着对客户代码进行删减又做了如下实验: 1,去掉A
[单片机]
<font color='red'>STM32</font>片内FLASH被异常改写的问题分享
STM32学习笔记之电容触摸1
电容触摸简介 8.1.1 电容触摸概述 随着科技的发展,传统的机械按键正在逐步从设备上面消失,这个原因主要有机械按键由于是采用机械接触的方式,寿命比较短,从用户体验上看,机械按键也显得操作复杂,对比现在的电容按键,电容按键具有寿命长,因为不存在机械接触,占用空间少,以前的机械按键在设计外壳的时候需要考虑尺寸,现在换成电容按键后这个问题不再需要考虑。 8.1.2 检测原理 常规的检测方式一般是通过计算电容放电时间来判断是否有手指按下,这是因为手指会与线路板的铜箔接触面上产生电容效应,当手指没有放在铜箔上的时候,铜箔与PCB之间存在杂散电容,这两个状态的电容值差别很大,检测原理如下图所示。 在检测之前首先用开关将电容Cs里面的电荷
[单片机]
<font color='red'>STM32</font>学习笔记之电容触摸1
stm32初始化流程图解析
  STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。   stm32参数:   12V-36V供电   兼容5V的I/O管脚   优异的安全时钟模式   带唤醒功能的低功耗模式   内部RC振荡器   内嵌复位电路   工作温度范围:-40°C至+85°C或105°C   stm32特点:   内核:ARM32位Cortex-M3 CPU,最高工作频率72MHz,1.25DMIPS/MHz。单周期乘法和硬件除法。   存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器。时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。上电
[单片机]
<font color='red'>stm32</font>初始化流程图解析
STM32 DMA 应用之(一)SRAM 与flash 间数据传输
一、为什么要用DMA? DMA 全称:Direct MemoryAccess 就是可以直接内存存取; 正是它可以直接操作内存所以具备以下优点: 而无需经过CPU去操作内存的存取,这样可以解放CPU出来干其他的事情; 因为他可以进行存储器时间的数据传输,而不需经过cpu,所以大大加快了数据传输速度—是一种高速的数据传输; 二.DMA有几种传输数据方式: (1)内存到 内存之间的;即:SRAM?à SRAM (2)内存到 外设之间的; (例如:串口收到的数据 从数据寄存器 à 内存) (3) 外设到内存之间的; 三.传输的数据宽度是怎样的,数据是什么样的形式传输?DMA 能传输多大的数据量? A. 数据源地址到数据目的地址 传
[单片机]
基于STM32的血氧仪开源设计方案
一、简介 设计一款基于STM32的血氧仪,用于测量人体血氧饱和度和心率,并将测量结果显示在LCD屏幕上。 本 产品 由STM32F103C8T6 单片机 最小系统+MAX30102 传感器 +LCD显示模块+蜂鸣器模块组成。 1.选择合适的传感器模块,如MAX30102,用于采集红光和 红外 线 信号 ,并通过单片机I IC 总线读取。 2.使用STM32 微控制器 作为主控 芯片 ,配置相应的 时钟 源和分频系数,开启需要使用的外设时钟,包括GPIO口、 ADC 、LCD等。 3.根据传感器模块和LCD屏幕的 接口 要求,进行相应的GPIO口配置和LCD初始化操作。 二、功能需求 采集功能:能够采集被测者的
[单片机]
基于<font color='red'>STM32</font>的血氧仪开源设计方案
stm32串口的DMA接收
UART5不支持DMA 不同的外设需要使用不同的DMA UART4需要使用DMA2的通道3或者5 例如: void DMA1_Channel5_IRQHandler(void) { u16 i,j=0; OS_ENTER_CRITICAL(); /* Tell uC/OS-II that we are starting an ISR */ OSIntNesting++; OS_EXIT_CRITICAL(); if(DMA_GetITStatus(DMA1_IT_TC5)!= RESET) { DMA_ClearITPendingBit(DMA1_IT_GL5); //清除全部中断标志 DMA_ClearIT
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved