STM32U575RIT6单片机一
STM32U575RIT6单片机(一)
作业一:自己实现寄存器配置点亮LED1。
作业二:寄存器配置打开风扇,打开蜂鸣器。
//1、使能系统时钟 // 系统时钟初始化 - 不加入会报错 可以尝试一下 void SystemInit(void) { //对地址 0xE000ED88 的内容 进行修改: //将0X3向左移动20位 或上 0X3 向左移动22位 (unsigned int) 0xE000ED88|=((3UL « 20U)|(3UL « 22U)); } int main() { //小灯 //1、GPIOC的RCC寄存器地址,将位2置为1,使能GPIOC的RCC时钟 *(unsigned int *) 0x56020c8c |=1«2;
//2、PC13,配置为通用输出模式,GPIO_MODER位27和26置为01 (unsigned int) 0x52020800 &=~(1«27); (unsigned int) 0x52020800 |=1«26;
//3、PC13设置输出类型,GPIO_OTYPER寄存器推挽输出位13设置为0 (unsigned int) (0x52020800+0x04) &=~(1«13);
//4、PC13设置为低速输出即可,GPIO_OSPEEDR位27和26置为00 (unsigned int) (0x52020800+0x08) &=
(1«27); (unsigned int) (0x52020800+0x08) &=(1«26);//5、PC13设置为输出,GPIO_ODR寄存器高电平位13置1 (unsigned int) (0x52020800+0x14) |=(1«13);
//蜂鸣器 //1、GPIOC的RCC寄存器地址,将位0置为1,使能GPIOC的RCC时钟 *(unsigned int *) 0x56020c8c |=1«0;
//2、PA15,配置为通用输出模式,GPIO_MODER位27和26置为01 (unsigned int) 0x52020000 &=~(1«31); (unsigned int) 0x52020000 |=1«30;
//3、PA15设置输出类型,GPIO_OTYPER寄存器推挽输出位15设置为0 (unsigned int) (0x52020000+0x04) &=~(1«15);
//4、PA15设置为低速输出即可,GPIO_OSPEEDR位31和30置为00 (unsigned int) (0x52020000+0x08) &=
(1«31); (unsigned int) (0x52020000+0x08) &=(1«30);//5、PA15设置为输出,GPIO_ODR寄存器高电平位15置1 (unsigned int) (0x52020000+0x14) |=(1«15);
//风扇 //1、GPIOC的RCC寄存器地址,将位2置为1,使能GPIOC的RCC时钟 *(unsigned int *) 0x56020c8c |=1«2;
//2、PC6,配置为通用输出模式,GPIO_MODER位13和12置为01 (unsigned int) 0x52020800 &=~(1«13); (unsigned int) 0x52020800 |=1«12;
//3、PC6设置输出类型,GPIO_OTYPER寄存器推挽输出位6设置为0 (unsigned int) (0x52020800+0x04) &=~(1«6);
//4、PC6设置为低速输出即可,GPIO_OSPEEDR位13和12置为00 (unsigned int) (0x52020800+0x08) &=
(1«13); (unsigned int) (0x52020800+0x08) &=(1«12);//5、PC6设置为输出,GPIO_ODR寄存器高电平位6置1 (unsigned int) (0x52020800+0x14) |=(1«6);
return 0; } //2、使能GPIO总线上的时钟