u32 *PAO3=(u32 *)(0x42000000+(0x4010080C-0x40000000)*32 +3*4) 我这句话是不是哪里有错误啊

STM32F103\u4e2d#define PERIPH_BB_BASE ((u32)0x42000000)\u662f\u5565\u5730\u5740?

#define PERIPH_BASE ((u32)0x40000000)\u662f\u5b9a\u4e49\u5916\u8bbe\u57fa\u5730\u5740\uff0c\u5373\u5916\u8bbe\u5730\u5740\u662f\u4ece\u8fd9\u91cc\u5f00\u59cb\u7684\u3002

#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)\u8868\u793a\u8be5\u5916\u8bbe\u7684\u5730\u5740\u662f\u5728\u57fa\u5730\u5740\u4e0a\u7684\u57fa\u7840\u4e0a\u504f\u79fb\u4e860x10000

没错。stm32的位绑定呢吧。
0x4010080C 是GPIOA的ODR的基地址。至于-4000000这个是取偏移地址。*32是 按以下公式得到的((Adress-0x40..)+8+位)*4 得到的。32位,,, 8是指8个bit 4是每个地址的位置。也就是 1位和2位的差别是8 .然后前面是声明一个指针。可以理解为 内存的位置或是内存的id号。然后,每次读写就是读这块区域。下面使用方法是 *PAO3=1或0 即可下面我送你的一些地址。可以根据规律算出 pc pd pe等。

#define PA 0x40010800;
#define PAL 0x40010800;
#define PAH 0x40010804;
#define PAI 0x40010808;
#define PAO 0x4001080C;
#define PABSR 0x40010810;
#define PABR 0x40010814;
#define PALCK 0x40010818;

#define PB 0x40010C00;
#define PBL 0x40010C00;
#define PBH 0x40010C04;
#define PBI 0x40010C08;
#define PBO 0x40010C0C;
#define PBBSR 0x40010C10;
#define PBBR 0x40010C14;
#define PBLCK 0x40010C18;

扩展阅读:94色域tn屏幕 ... uc网页版进入 ... ucc官网首页 ... mac蜜桃奶茶314 ... m3u8视频可以永久保存 ... www.9377.cn ... www.sony.com.cn ... www.968777.cn ... uc网站入口 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网