在哪个国家做垂直网站好谷歌竞价排名推广公司
作业
作业一:自己实现寄存器配置点亮LED1。
main.c文件
//1.使能系统时钟// 系统时钟初始化 - 不加入会报错 可以尝试一下void SystemInit(void){//对地址 0xE000ED88 的内容 进行修改://将0X3向左移动20位 或上 0X3 向左移动22位*(unsigned int*) 0xE000ED88|=((3UL << 20U)|(3UL << 22U));}int main(){//RCC_AHB2寄存器地址 = RCC的基地址+RCC_AHB2的偏移地址得到//RCC_AHB2寄存器地址 = 0x5602 0C8C//2.使能GPIO总线上的时钟*(unsigned int *)0x56020C8C |=1<<2;//3.配置GPIO相关寄存器//GPIO_MODER位27和位26分别为01 输出模式*(unsigned int *)0x52020800 &=~(1<<27);*(unsigned int *)0x52020800 |=1<<26;//GPIO_OTYPER寄存器位13写入0*(unsigned int *)0x52020804 &=~(1<<13);//GPIO_OSPEEDR位27和位26写入00*(unsigned int *)(0x52020800+0x08) &=~(1<<27);*(unsigned int *)(0x52020800+0x08) &=~(1<<26);//GPIO_ODR寄存器位13写入1 高电平*(unsigned int *)(0x52020800+0x14) |=(1<<13);return 0;}
6、作业二:寄存器配置打开风扇,打开蜂鸣器。
打开风扇main.c文件
// 系统时钟初始化 - 不加入会报错 可以尝试一下
void SystemInit(void)
{//对地址 0xE000ED88 的内容 进行修改://将0X3向左移动20位 或上 0X3 向左移动22位*(unsigned int*) 0xE000ED88|=((3UL << 20U)|(3UL << 22U));
}int main()
{//RCC_AHB2寄存器地址 = RCC的基地址+RCC_AHB2的偏移地址得到//RCC_AHB2寄存器地址 = 0x5602 0C8C//2.使能GPIO总线上的时钟*(unsigned int *)0x56020C8C |=1<<2;//3.配置GPIO相关寄存器//GPIO_MODER位13和位12分别为01 输出模式*(unsigned int *)0x52020800 &=~(1<<13);*(unsigned int *)0x52020800 |=1<<12;//GPIO_OTYPER寄存器位13写入0*(unsigned int *)(0x52020800+0x04) &=~(1<<6);//GPIO_OSPEEDR位13和位12写入00*(unsigned int *)(0x52020800+0x08) &=~(1<<13);*(unsigned int *)(0x52020800+0x08) &=~(1<<12);//GPIO_ODR寄存器位6写入1 高电平*(unsigned int *)(0x52020800+0x14) |=(1<<6);return 0;
}
蜂鸣器main.c代码
// 系统时钟初始化 - 不加入会报错 可以尝试一下
void SystemInit(void)
{//对地址 0xE000ED88 的内容 进行修改://将0X3向左移动20位 或上 0X3 向左移动22位*(unsigned int*) 0xE000ED88|=((3UL << 20U)|(3UL << 22U));
}int main()
{//RCC_AHB2寄存器地址 = RCC的基地址+RCC_AHB2的偏移地址得到//RCC_AHB2寄存器地址 = 0x5602 0C8C//2.使能GPIO总线上的时钟*(unsigned int *)0x56020C8C |=1<<2;//3.配置GPIO相关寄存器//GPIO_MODER位31和位30分别为01 输出模式*(unsigned int *)0x52020800 &=~(1<<31);*(unsigned int *)0x52020800 |=1<<30;//GPIO_OTYPER寄存器位15写入0*(unsigned int *)(0x52020800+0x04) &=~(1<<15);//GPIO_OSPEEDR位31和位30写入00*(unsigned int *)(0x52020800+0x08) &=~(1<<31);*(unsigned int *)(0x52020800+0x08) &=~(1<<30);//GPIO_ODR寄存器15位写入1 高电平*(unsigned int *)(0x52020800+0x14) |=(1<<15);return 0;
}
思维导图