飞不高 发表于 2025-3-16 22:00:13

STM32U575RIT6单片机(一)

作业一:自己实现寄存器配置点亮LED1。

作业二:寄存器配置打开风扇,打开蜂鸣器。https://i-blog.csdnimg.cn/direct/f0b7e45699744ccda5d968b4cd6c1cff.pnghttps://i-blog.csdnimg.cn/direct/fa318b77623d45bba9dc00e18dcfc917.jpeg

//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总线上的时钟

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: STM32U575RIT6单片机(一)