STM32-库开发-地址映射

发布者:HarmoniousSoul最新更新时间:2017-09-06 来源: eefocus关键字:STM32  库开发  地址映射 手机看文章 扫描二维码
随时随地手机看文章

1.stm32有AHB,APB2,APB1总线。
   其中APB2外设地址空间是从0x40010000至0x40013FFF地址。第一个地址称为基地址。


2.参考手册中端口配置寄存器有地址偏移0x04,所以GPIOC_CRH地址为GPIOC_BASE+0x04


  GPIO_TypeDef结构体!,里面的CRL,CRH,IDR等共7个变量,之间0x04地址偏移,以后修改GPIO寄存器:
  GPIO_TypeDef * GPIOx;
  GPIOx = GPIOA;
  GPIOx->CRL = 0xffffffff;


3.配置GPIO的寄存器要开启外设时钟!区别于51单片机!
   注意使用不同的外设都要开启相应的时钟
   库函数的实现原理,通过书上对GPIO_Init的实现代码解释,熟悉函数的实现原理及思想。


4.GPIO 4种输入模式,可通过GPIO结构图分析。
   我们可以看到上拉,下拉,浮空,关闭TTL的模拟输入。
   其中浮空模式一般用于标准的通信协议如I2C,USART接收端。
   当我们用ADC时,则选择模拟输入,关闭TTL,将电压信号直接传送到片上外设。


3.简单的按键控制LED灯的反转。(类似于单片机的按键思想)
   先是按键的GPIO配置,然后按键扫描。最后用户应用程序。


4.EXTI15_10_IRQHandler
   在学习中断过程中我们知道NVIC,EXTI等初始化,在选择某外部中断时需要注意EXTI15_10_IRQHandler,在此函数里面可以写进我们的中断处理程序。


5.GPIO_WriteBit(GPIOB, LED1, (BitAction)((1-GPIO_ReadOutputDataBit(GPIOB, LED1))));
   此运算的含义。




6.在串行通信的过程中,了解了按照时序图编程的思想,一个stm32一个引脚对应clock,上升沿时另一个引脚输入数据,其中clear对应的引脚要保持合理的电平。通过一个好     算法:一个for 8位循环,再来个与操作来通过输入数据引脚在恰当的时序情况下输入电平,这样就实现串行通信!

关键字:STM32  库开发  地址映射 引用地址:STM32-库开发-地址映射

上一篇:stm32之重映射与地址映射
下一篇:STM32F1学习-寄存器地址映射以及位带操作

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

STM32再学习――启动流程分析
  我们写嵌入式程序,基本上采用C语言来编写,以main( )作为程序的入口。但实际上,mian()并不是最先要执行的,在这之前需要做一些基本的工作,如堆、栈的定义;main函数的复位连接等,这些工作就需要一个专门的启动程序来完成,由于需要做的工作内容不多,并且需要更直接的管理内存,一般采用汇编编写。   无论是STM32、ARM系列的单片机,还是简单的如51,PIC等,都以为上述原因,需要启动程序,只不过51,PIC等单片机的启动程序已经在相应的IDE编译、链接的时候隐含的编译了,故在写单片机程序的时候无需考虑。而STM32的启动有相应的启动文件,本文将采用KEIL MDK自带的启动文件STM32F10x.s进行分析。
[单片机]
STM32时钟初始化函数SystemInit()详解
花了一天的时间,总算是了解了SystemInit()函数实现了哪些功能,初学STM32,,现记录如下(有理解错误的地方还请大侠指出): 使用的是3.5的库,用的是STM32F107VC,开发环境RVMDK4.23 我已经定义了STM32F10X_CL,SYSCLK_FREQ_72MHz 函数调用顺序: startup_stm32f10x_cl.s(启动文件) → SystemInit() → SetSysClock () → SetSysClockTo72() 初始化时钟用到的RCC寄存器复位值: RCC_CR = 0x0000 xx83; RCC_CFGR = 0x0000 0000;RCC_CIR = 0x0000 0000;
[单片机]
<font color='red'>STM32</font>时钟初始化函数SystemInit()详解
STM32开发笔记88: SX1268驱动程序设计(天线控制)
单片机型号:STM32L053R8T6 本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍天线控制的相关驱动程序。 上篇日志,提到在SX126xCheckDeviceReady函数中,如果芯片处于启动、硬复位、SLEEP模式、RX_DC模式,转换到STDBY模式时,需唤醒芯片,并将天线打开,程序如下: void CSX1268::SX126xCheckDeviceReady(void) { if((this- OperatingMode == MODE_SLEEP) || (this- OperatingMode == MODE_RX_DC)) { SX126xWakeup(); SX126
[单片机]
<font color='red'>STM32</font><font color='red'>开发</font>笔记88: SX1268驱动程序设计(天线控制)
STM32在IAR的开发步骤
我也是刚开始接触stm32,前几天开始在IAR上做程序,发现很多网上写的建立程序步骤已不适于新版本的IAR,遇到不少问题,每个问题都得自己解决,最后在一些网友的帮助下,终于成功建立了第一个程序。 现在我写出STM32在IAR建立工程的步骤与大家分享,希望能帮大家解决一些问题。 我使用的是IAR5.3版本,固件库3.0版本(注意查看你的固件库是不是3.0,3.0以上的版本大致相同) 第一步,先建立一个文件夹,该文件夹将放所有与项目有关的文件,并将ST公司提供的固件函数库(Libraries)复制到该文件夹下,并在该文件中在建立一个文件,命名为project,再创立一个文本文档,命名为readme 如图所示 打开project,将
[单片机]
<font color='red'>STM32</font>在IAR的<font color='red'>开发</font>步骤
STM32的GPIO输入输出的几种模式的总结
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD开漏输出 (6)GPIO_Mode_Out_PP推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。因此,在这里做一个总结:
[单片机]
<font color='red'>STM32</font>的GPIO输入输出的几种模式的总结
在Linux下搭建STM32开发环境攻略
Linux发行版是64bit的Fedora19,方案选择为:Eclipse+CodeSourcery+OpenOCD+STLINKv2。 NO1.准备STM32的开发板,购买仿真器STLINKv2。 NO2.安装 CodeSourcery 如果是64bit机器,首先确认它能够运行32bit的软件。CodeSourcery可以在官网https://sourcery.mentor.com下载,名称为arm-2013.05-23-arm-none-eabi.bin,安装它。 CodeSourcery是编译好的二进制GCC程序包。 NO3.安装 OpenOCD 实际上,使用下面这个命令就可以: yum ins
[单片机]
STM32库函数void USART_SendData()的缺陷和解决方法
简介:本文主要谈到了STM32库函数void USART_SendData()存在的一些问题,针对这些问题提到了3个解决方案,一起来看看。 2.1问题及现象 使用USART_SendData()函数非连续发送单个字符是没有问题的;当连续发送字符时(两个字符间没有延时),就会发现发送缓冲区有溢出现象。若发送的数据量很小时,此时串口发送的只是最后一个字符,当发送数据量大时,就会导致发送的数据莫名其妙的丢失。 如: for(TxCounter = 0;TxCounter RxCounter; TxCounter++) USART_SendData(USART1, RxBuffer ); 2.2原因 此API
[单片机]
认识STM32的复位与电源管理
复位功能是一个非常重要的功能,大到PC,小到单片机,每一台计算机系统都有。在我小时候,去网吧的时候,但凡是电脑出现任何一点小问题,网管的第一回答一定是重启。重启和复位就是同一个意思。 发展到现在PC已经很稳定了,复位按钮慢慢的淡出我们的视野,但是在主板上我们依然可以找到复位电路的存在。单片机上的复位功能也有着类似的变化,在我们学单片机那个年代,需要在单片机的外部一个复位电路,从专用引脚上接一个电阻和电容组成的复位电路。如果没有这个电路,单片机就没法工作。现在的新款单片机都把复位功能内置到单片机中。如果是开发项目要手动复位,我们可以在复位引脚上接一个按键用来手动复位。 复位 复位功能的作用是让RAM 中的数据清空,让所有连接
[单片机]
认识<font color='red'>STM32</font>的复位与电源管理
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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