IT评测·应用市场-qidao123.com

标题: STM32U575RIT6单片机(一) [打印本页]

作者: 飞不高    时间: 2025-3-16 22:00
标题: STM32U575RIT6单片机(一)
作业一:自己实现寄存器配置点亮LED1。

  作业二:寄存器配置打开风扇,打开蜂鸣器。


  1. //1、使能系统时钟
  2. // 系统时钟初始化  - 不加入会报错 可以尝试一下
  3. void SystemInit(void)
  4. {
  5.   //对地址 0xE000ED88 的内容 进行修改:
  6.   //将0X3向左移动20位 或上 0X3 向左移动22位
  7.   *(unsigned int*) 0xE000ED88|=((3UL << 20U)|(3UL << 22U));
  8. }
  9. int main()
  10. {
  11.         //小灯
  12.         //1、GPIOC的RCC寄存器地址,将位2置为1,使能GPIOC的RCC时钟
  13.         *(unsigned int *) 0x56020c8c |=1<<2;
  14.        
  15.         //2、PC13,配置为通用输出模式,GPIO_MODER位27和26置为01
  16.         *(unsigned int*) 0x52020800 &=~(1<<27);
  17.         *(unsigned int*) 0x52020800 |=1<<26;
  18.        
  19.         //3、PC13设置输出类型,GPIO_OTYPER寄存器推挽输出位13设置为0
  20.         *(unsigned int*) (0x52020800+0x04) &=~(1<<13);
  21.        
  22.         //4、PC13设置为低速输出即可,GPIO_OSPEEDR位27和26置为00
  23.         *(unsigned int*) (0x52020800+0x08) &=~(1<<27);
  24.         *(unsigned int*) (0x52020800+0x08) &=~(1<<26);
  25.        
  26.         //5、PC13设置为输出,GPIO_ODR寄存器高电平位13置1
  27.         *(unsigned int*) (0x52020800+0x14) |=(1<<13);
  28.        
  29.         //蜂鸣器
  30.         //1、GPIOC的RCC寄存器地址,将位0置为1,使能GPIOC的RCC时钟
  31.         *(unsigned int *) 0x56020c8c |=1<<0;
  32.        
  33.         //2、PA15,配置为通用输出模式,GPIO_MODER位27和26置为01
  34.         *(unsigned int*) 0x52020000 &=~(1<<31);
  35.         *(unsigned int*) 0x52020000 |=1<<30;
  36.        
  37.         //3、PA15设置输出类型,GPIO_OTYPER寄存器推挽输出位15设置为0
  38.         *(unsigned int*) (0x52020000+0x04) &=~(1<<15);
  39.        
  40.         //4、PA15设置为低速输出即可,GPIO_OSPEEDR位31和30置为00
  41.         *(unsigned int*) (0x52020000+0x08) &=~(1<<31);
  42.         *(unsigned int*) (0x52020000+0x08) &=~(1<<30);
  43.        
  44.         //5、PA15设置为输出,GPIO_ODR寄存器高电平位15置1
  45.         *(unsigned int*) (0x52020000+0x14) |=(1<<15);
  46.        
  47.         //风扇
  48.         //1、GPIOC的RCC寄存器地址,将位2置为1,使能GPIOC的RCC时钟
  49.         *(unsigned int *) 0x56020c8c |=1<<2;
  50.        
  51.         //2、PC6,配置为通用输出模式,GPIO_MODER位13和12置为01
  52.         *(unsigned int*) 0x52020800 &=~(1<<13);
  53.         *(unsigned int*) 0x52020800 |=1<<12;
  54.        
  55.         //3、PC6设置输出类型,GPIO_OTYPER寄存器推挽输出位6设置为0
  56.         *(unsigned int*) (0x52020800+0x04) &=~(1<<6);
  57.        
  58.         //4、PC6设置为低速输出即可,GPIO_OSPEEDR位13和12置为00
  59.         *(unsigned int*) (0x52020800+0x08) &=~(1<<13);
  60.         *(unsigned int*) (0x52020800+0x08) &=~(1<<12);
  61.        
  62.         //5、PC6设置为输出,GPIO_ODR寄存器高电平位6置1
  63.         *(unsigned int*) (0x52020800+0x14) |=(1<<6);
  64.        
  65.         return 0;
  66. }
  67. //2、使能GPIO总线上的时钟
复制代码


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




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4