野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8732|回复: 1

用寄存器做LED灯闪烁实验,为什么ODR寄存器不工作

[复制链接]
发表于 2022-1-16 09:30:54 | 显示全部楼层 |阅读模式
#include "stm32f10x.h"

void Delay(int count)//延时函数
{
  for(count=0;count!=0;count--);
}

int main(void)
{
                  //1.打开GPIOB的时钟
          *(unsigned int * )0X40021018 |= ((1)<<3);
         
          //2.配置IO口为输出模式
      *(unsigned int * )0X40010C00 &= ~((0x0f)<<(4*0));      
                 *(unsigned int * )0X40010C00 |= ((1)<<(4*0));                  //PB0的地址


//           *(unsigned int * )0X40010C00 &= ~((0x0f)<<(4*0));
//                 *(unsigned int * )0X40010C00 |= (1<<(4*1));                //PB1的地址
//         

//           *(unsigned int * )0X40010C00 &= ~((0x0f)<<(4*0));
//           *(unsigned int * )0X40010C00 |= ((1)<<(4*5));                               //PB5的地址
//         
         while(1)
                 
         {
         //3.控制ODR寄存器
           *(unsigned int * )0X40010C0C &= ~(1<<0);
                 Delay(1000);
                 
                  *(unsigned int * )0X40010C0C |= (1<<0);
                 Delay(1000);
                 
//           *(unsigned int * )0X40010C0C &= ~(1<<1);
                 Delay(10000);
                 
//                 *(unsigned int * )0X40010C0C |= (1<<1);
//                 Delay(1000);
//                 
//                 *(unsigned int * )0X40010C0C &= ~(1<<5);
                 Delay(10000);
                 
//                 *(unsigned int * )0X40010C0C |= (1<<5);
//     Delay(1000);
         }
}


8ed27a0ec9c6b8f208585af1ac42b3a.png
回复

使用道具 举报

发表于 2022-1-17 09:09:17 | 显示全部楼层
这样看可以将这个引脚置高电平和低电平。会不会是板子的跳帽没盖好或者是看看keil编译版本
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 05:20 , Processed in 0.029484 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表