STM32位用法绑定

来源:互联网 发布:帝国cms添加播放器 编辑:程序博客网 时间:2024/04/29 03:30
//位绑定区域://SRAM:      0X2000 0000 ~ 0X200F FFFF 1M   A的范围// AliasAddr = 0x2200 0000 + ((A-0X2000 0000)*8+n)*4      (n= 0~7)//           = 0x2200 0000+ (A-0X2000 0000)*32+n*4      4个字节,32个位;//片上外设    0X4000 0000 ~ 0X400F FFFF 1M   A的范围// AliasAddr = 0X4200 0000 + ((A-0X4000 0000)*8+n)*4//           = 0x4200 0000 + (A-0X4000 0000)*32+n*4      4个字节,32个位;


#include "stm32f10x.h"int main(void){ u32 *PAO3 = (u32 *)(0x42000000 + (0x4001080C-0X40000000)*32+3*4); //0x4001 080C  ODR的地址; u32 *PAI3 = (u32 *)(0x42000000 + (0x40010809-0X40000000)*32+3*4); //0x4001 080C  ODR的地址;// u32 *PAI3 = (u32 *)(0x42000000 + (0x40010808-0X40000000)*32+11*4); //0x4001 080C  ODR的地址;//1.PA.0-PA.7推揽式输出,50MHZ;PA.8-PA.15 浮空输入, GPIOA->CRL=0X33333333;   GPIOA->CRH=0X44444444;//2.输入状态反应到对应引脚的输出;while(1){if(*PAI3==1)  *PAO3 = 1;  //if((GPIOA->IDR&0X0800)==0X0800) GPIOA->ODR=GPIOA->ODR|0X08; else          *PAO3 = 0;  //GPIOA->ODR=GPIOA->ODR & (~0x08);}return 0;}

可以将GPIOA->ODR和 GPIOA->IDR的值使用位绑定表示,简单。

其中A的表达式可以从定义中找到其地址值。

0 0
原创粉丝点击