指针指针(u32指针)GPIOx简介

altools u32  时间:2021-01-22  阅读:()

typedef struct

{

__IO uint32_t CRL;

__IO uint32_t CRH;

__IO uint32_t IDR;

__IO uint32_t ODR;

__IO uint32_t BS RR;

__IO uint32_t BRR;

__IO uint32_t LCKR;

}GPIO_TypeDef;

GPIO_TypeDef是一个结构体定义,里面定义了控制端口的几个寄存器

#define PERIPH_BASE ((uint32_t)0x40000000)

#define APB2PERIPH_BASE (PERIPH_BASE+0x10000)

#define GPIOA_BASE (APB2PERIPH_BASE+0x0800)

可以看出 GP IOA_BASE其实就是一个地址偏移量是一个U32类型的常量说到底就是一个地址

#define GPIOA ((GPIO_TypeDef*)GPIOA_BASE)

注 GPIOA就是GPIO_TypeDef类型的指针了,这样子就可以直接通过GPIOA这个地址来访问

其中的寄存器O DR,B RR之类

GPIO_DeInit GP IOA 

STM32中的源程序

/***********************************************************************

********

*函数名称:GP IO_De Init

*功能描述:将GPIO部件的寄存器复位为默认值

*输入参数:GPIOx x可为A到G来选择特定的GPIO设备

*输出参数:无

*返回参数:无

************************************************************************

*******/void GPIO_DeInit(GPIO_TypeDef*GPIOx)

{

/*Check the parameters [检查参数]*/ass ert_param(IS_GPIO_ALL_PERIPH(GPIOx));sw itc h(*(u32*)&GP IO x)

{case GPIOA_BASE:

RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA,ENABLE);

RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA,DISABLE);b re ak;case GPIOB_BASE:

RCC_APB2PeriphResetCmd(RCC_APB2P eriph_GPIOB,ENABLE);

RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB,DISABLE);b re ak;

. . . . . .

}

}

有人说

(*(uint32_t*)&GPIOx)获得的值就是GPIOx本身的值,只不过类型变了而已可以简化为(U32)GPIOx,

这样也可以获得(*(uint32_t*)&GP IOx)的效果 即(*(uint32_t*)&GPIO x)

= (U32)GPIO x 但是,

为什么要这样子做,我觉得是可读性问题, (U32)GPIOx是可以获得同样的结果 但是却不合理,让人觉

得无厘头; (*(uint32_t*)&GP IOx)的运算虽然兜来兜去,但是却是符合语法,跟逻辑的.无非最核心的

部分是获得一个指针的指针,然后对这个指针的指针取值,获得最原始那个指针。但是我觉得——这里GPIOx是个指针 (*(uint32_t*)&GP IOx)获得的值是指针GPIOx中的值类型也改变了

但不能简化为U32GPIOx而简化为*GPIOx好像更合适。

因为有#define GPIOA ((GPIO_TypeDef*)GPIOA_BASE),并且调用GPIO_De Init(GPIOA)后指针GPIOx

所指的值就为0x40010800假设指针变量GPIOx的地址为0x20000000那么&GPIOx就是取GPIOx的地址

0x20000000 (u32*)&GPIOx就是将0x200000000存的数据强制转化为u32位类型的数据 * (u32*)&GPIOx就

能得到地址里0x200000000存的0x40010800这个数据。

香港服务器多少钱一个月?香港云服务器最便宜价格

香港服务器多少钱一个月?香港服务器租用配置价格一个月多少,现在很多中小型企业在建站时都会租用香港服务器,租用香港服务器可以使网站访问更流畅、稳定性更好,安全性会更高等等。香港服务器的租用和其他地区的服务器租用配置元素都是一样的,那么为什么香港服务器那么受欢迎呢,香港云服务器最便宜价格多少钱一个月呢?阿里云轻量应用服务器最便宜的是1核1G峰值带宽30Mbps,24元/月,288元/年。不过我们一般选...

GigsGigsCloud:$16/月KVM-1GB/30GB/1TB/1.6T高防/洛杉矶CN2 GIA+AS9929

GigsGigsCloud是一家成立于2015年老牌国外主机商,提供VPS主机和独立服务器租用,数据中心包括美国洛杉矶、中国香港、新加坡、马来西亚和日本等。商家VPS主机基于KVM架构,绝大部分系列产品中国访问速度不错,比如洛杉矶机房有CN2 GIA、AS9929及高防线路等。目前Los Angeles - SimpleCloud with Premium China DDOS Protectio...

陆零(¥25)云端专用的高性能、安全隔离的物理集群六折起

陆零网络是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护 为核心数据库、关键应用系统、高性能计算业务提供云端专用的高性能、安全隔离的物理集群。分钟级交付周期助你的企业获得实时的业务响应能力,助力核心业务飞速成...

altools u32为你推荐
电视直播软件哪个好电视直播软件安卓tv版哪个好用ps软件哪个好哪个PS软件最好用(适合初学者用)?电陶炉和电磁炉哪个好电磁炉跟电陶炉哪个好手机杀毒哪个好手机杀毒软件哪个好 五大手机安全软件杀毒大比拼东莞电信宽带套餐东莞光纤宽带资费月抛隐形眼镜哪个牌子的月抛隐形眼镜戴起来比较舒服?请推荐便宜坊便宜坊和全聚德哪个好电影票在哪买便宜在哪买电影票最便宜哪个快递最便宜快递那种便宜 20公斤寄什么快递便宜便宜平板电脑便宜点的平板电脑
传奇服务器租用 免费com域名申请 什么是域名解析 bandwagonhost 512m 2017年万圣节 轻量 骨干网络 193邮箱 jsp空间 免费个人空间 亚马逊香港官网 台湾谷歌 如何安装服务器系统 免费网页申请 江苏双线服务器 东莞主机托管 大化网 广东服务器托管 双11促销 更多