初中生
最后登录1970-1-1
在线时间 小时
注册时间2018-3-21
|

楼主 |
发表于 2018-3-22 13:54:52
|
显示全部楼层
#include "stm32f10x.h"
int main(void)
{
#if 0
//打开GPIO_B端口的时钟
*(unsigned int*)0x40021018 |=(1<<3);
//控制CRL寄存器(配置I/O口为输出),|置一操作,这里(4*0)的意思是四个为一组。
*(unsigned int*)0x40010c00 |=((1)<<(4*0));
//控制ODR寄存器,这里& ~ 置0操作
*(unsigned int*)0x40010c0c &=~(1<<0);
#elif 0
//打开GPIO_B端口的时钟
RCC_APB2ENR |=(1<<3);
//控制CRL寄存器(配置I/O口为输出),|置一操作,这里(4*0)的意思是四个为一组。
GPIOB_CRL |=((1)<<(4*0));
//控制ODR寄存器,这里& ~ 置0操作
GPIOB_ODR &=~(1<<0);
#elif 1
//打开GPIO_B端口的时钟
RCC->APB2ENR |=(1<<3);
//控制CRL寄存器(配置I/O口为输出),|置一操作,这里(4*0)的意思是四个为一组。
GPIOB->CRL &=~((0x0f)<<(4*0));
GPIOB->CRL |=((1)<<(4*0));
//控制ODR寄存器,这里& ~ 置0操作
GPIOB->ODR &=~(1<<0);
// GPIOB->ODR |=(1<<0);
#endif
}
//置位 |= 清零 &=~
void SystemInit(void)
{
//函数体为空。目的是为了骗过编译不报错。
}
|
|