如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
stm32IO口操作方式直接操作网上摘录(虾坛首页)对STM32IO口一种新操作方式。自己又加入个人理解Gaoqt。如果想操作STM32的普通IO口,有简单的方法,可定义一下,直接操作。如下示例://首先定义一下IO口的别名,将PC的4位定义一下。#definePC_Bit4((volatileunsignedlong*)(0x42220190))#definePC_Bit5((volatileunsignedlong*)(0x42220194))#definePC_Bit6((volatileunsignedlong*)(0x42220198))#definePC_Bit7((volatileunsignedlong*)(0x4222019C))#definePB_Bit0((volatileunsignedlong*)(0x42218180))#definePB_Bit12((volatileunsignedlong*)(0x422181B0))#definePB_Bit13((volatileunsignedlong*)(0x422181B4))#definePB_Bit14((volatileunsignedlong*)(0x422181B8))//使用操作示例,可直接将它改,读,写操作。*PC_Bit4=1;*PC_Bit4=0;要计算GPIO口的别名地址,按下面方法查找计算。在“stm32f10x_map.h”系统文件中,找到下面内容:/*PeripheralandSRAMbaseaddressinthealiasregion*/#definePERIPH_BB_BASE((u32)0x42000000)//别名启始地址PERIPH_BASE((u32)0x40000000)APB2PERIPH_BASE(PERIPH_BASE+0x10000)GPIOC_BASE(APB2PERIPH_BASE+0x1000)GPIOC_ODRADDRESS=GPIOC_BASE+ODR位的地址GPIOC_ODRADDRESS=0x40011000+C(可以查手册7.5节得到偏移为“C”)GPIOC_ODRADDRESS=0x4001100C下面的映射公式给出了别名区中的每个字是如何对应位带区的相应位的:注意一点:在运算中,用16进制与10进制的数。比如乖的32换成16进制就是20bit_word_addr=bit_band_base+(byte_offsetx32)+(bit_number×4)其中:bit_word_addr是别名存储器区中字的地址,它映射到某个目标位。bit_band_base是别名区的起始地址。byte_offset是包含目标位的字节在位段里的序号bit_number是目标位所在位置(0-31)bit_word_addr=0x42000000+(0x1100C*32)+4*4bit_word_addr=0x42220190