STM控制器位带操作详解实用教案_第1页
STM控制器位带操作详解实用教案_第2页
STM控制器位带操作详解实用教案_第3页
STM控制器位带操作详解实用教案_第4页
STM控制器位带操作详解实用教案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、STM32控制器与8051控制器IO口输入(shr)/输出操作对比#include “reg51.h”sbit P20= P20;void main(void) while(1) P20 = 1; delay(); P20 = 0; delay(); #include “stm32f10 x.h”sbit P20= P20;void main(void) while(1) GPIOB-BSRR|=1BRR|=1BSRR|=1BRR|=15; delay(); 第5页/共15页第五页,共16页。8051单片机的位寻址区表表2-32-3第6页/共15页第六页,共16页。STM32位带区之一第7页/

2、共15页第七页,共16页。STM32位带区之二第8页/共15页第八页,共16页。STM32存储器映射(yngsh)关系教材(jioci)26页 图2-10 CM3存储器组织位带区位别名(bimng)区位带区位别名区第9页/共15页第九页,共16页。STM32 位带绑定操作(cozu)示意图第10页/共15页第十页,共16页。STM32 位带绑定操作(cozu) 计算公式4n32)0 x40000000(A0 x420000004n)8)0 x40000000(A0 x42000000AliasAddr4n32)0 x20000000(A0 x220000004n)8)0 x20000000(A

3、0 x22000000AliasAddrSRAM对于外设位带区位带区对于注释(对于位带区的某个bit,上图红色圈中的bit)n:所代表的位序号(0n7)。例如(lr)上图中n=3A:该bit所在的字节地址。例如(lr)上图中A=0 x2000 0000(0 x20000000A0 x200FFFFF或0 x20000000A0 x200FFFFF )AliasAddr:该bit在别名区的地址。例如(lr)上图AliasAddr=0 x2200000C第11页/共15页第十一页,共16页。STM32 位带绑定操作(cozu) 程序设计举例:在SRAM的0 x20004000地址定义一个长度为51

4、2字节(z ji)的数组:#pragma location =0 x20004000 _root _no_init u8 Buffer512;GPIOA的端口输出数据寄存器位于地址0 x4001080C。要求:将数组中数据通过GPIOA.0引脚送出分析:数组首字节(z ji)的bit0对应的位别名区地址为:0 x22000000+(0 x20004000-0 x20000000)32)+(04)=0 x22080000GPIOA.0控制其输出电平的bit位所对应的别名区地址为:0 x42000000+(0 x4001080C-0 x40000000)32)+(04)=0 x42210180u3

5、2 *pBuffer=(u32 *)0 x22080000;u16 cnt= 512 * 8;while(cnt-) (*(u32 *)0 x42210180)=*pBuffer+;第12页/共15页第十二页,共16页。STM32 位带绑定操作方法归纳(gun)1 指针、地址与取指针操作#define PD12 (volatile unsigned long *)(0 x424182b0) /0 x424182b0为GPIOD.12引脚对应的映射位别名地址*PD12=0 x01;/PD12引脚置高电平2 直接(zhji)定义使用地址操作#define PD12 *(volatile unsig

6、ned long *)(0 x424182b0) /0 x424182b0为GPIOD.12引脚对应的映射位别名地址PD12=0 x01;/PD12引脚置高电平3 宏定义,转换别名操作使用:VIEW_TIME=1; VIEW_TIME=0;/GPIOA.10引脚 输出1或者0分析:#define VIEW_TIME PAout(10)#define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) /输出 #define PAin(n) BIT_ADDR(GPIOA_IDR_Addr,n) /输入#define GPIOA_ODR_Addr (GPIOA_BASE+12)

7、 /0 x4001080C#define GPIOA_BASE (APB2PERIPH_BASE + 0 x0800)#define APB2PERIPH_BASE (PERIPH_BASE + 0 x10000)#define PERIPH_BASE (uint32_t)0 x40000000) #define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum)#define MEM_ADDR(addr) *(volatile unsigned long *)(addr) #define BITBAND(addr, bitnum) (addr & 0 xF0000000)+0 x2000000+(addr &0 xFFFFF)5)+(bitnumBRR|=15。n:所代表(dibio)的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论