__IO uint32_t CRL; /*GPIO 端口配置低寄存器 地址偏移: 0x00 */ __IO uint32_t CRH; /*GPIO 端口配置高寄存器 地址偏移: 0x04 */ __IO uint32_t IDR; /*GPIO 数据输入寄存器 地址偏移: 0x08 */ __IO uint32_t ODR; /*GPIO 数据输出寄存器 地址偏移: 0x0C */ __IO uint32_t BSRR; ...
#define GPIOB_ODR_Address ((u32)0x40010c00+0x0c) __IO uint16_t ADC_ConvertedValue; //__IO u16 ADC_ConvertedValueLocal; /* *函数名:ADC1_GPIO_Config *描述:使能ADC1和DMA1的时钟,初始化PC.01 *输入:无 *输出:无 *调用:内部调用
GPIOC->ODR = 0xFFFF; GPIOC->ODR = 0x0000; } 可以看到,最小脉宽电平可以达到40ns,直接操作寄存器的速度明显要到库函数操作要快好多,低电平的时间要比高电平的时间长很多,同样也是因为处理while的原因。 用CPU操作寄存器可以达到最快的电平翻转,但是这样CPU的资源全用在这上面,不能再做其它的操作。如果用DMA...
#defineGPIOB_ODR_Address((u32)0x40010c00+0x0c) __IOuint16_tADC_ConvertedValue; //__IOu16ADC_ConvertedValueLocal; /* *函数名:ADC1_GPIO_Config *描述:使能ADC1和DMA1的时钟,初始化PC.01 *输入:无 *输出:无 *调用:内部调用 */ staticvoidADC1_GPIO_Config(void) ...