野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖回复
楼主: 奋斗的蜗牛

火哥新录制的STM32F103第7讲(第2节)使用寄存器点亮LED,作业情况

[复制链接]
发表于 2020-8-12 10:45:35 | 显示全部楼层
小光含 发表于 2020-8-11 22:43
火哥,请问作业是指百度网盘的教学视频中的吗?

是的                     
回复 支持 反对

使用道具 举报

发表于 2020-8-12 10:45:35 | 显示全部楼层
小光含 发表于 2020-8-11 22:43
火哥,请问作业是指百度网盘的教学视频中的吗?

是的                     
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-28 15:15:37 | 显示全部楼层
哈咻咻咻duang 发表于 2020-8-11 17:10
为什么我按照你的代码敲上去后,出现了
“main.c(25): error:  #22: invalid hexadecimal number
PIOB_ODR  ...

重新敲一遍
回复 支持 反对

使用道具 举报

发表于 2021-11-8 21:12:49 | 显示全部楼层
小灯不亮,按下复位键就亮了,这是啥情况,有大佬知道吗



#include "stm32f10x.h"

int main(void)
{
        //ABP2外设寄存器复位
          *(unsigned int *)0x40021018 |= ((1)<<3);
        //端口配置低位寄存器
          *(unsigned int *)0x40010C00 &= ~((0x0f)<<(4*0));
          *(unsigned int *)0x40010C00 |=  ((1)<<(4*0));
        //端口ODR输出
          *(unsigned int *)0x40010C0C &= ~(1<<0);
}

void SystemInit(void)
{
       
}
回复 支持 反对

使用道具 举报

发表于 2021-11-10 08:36:10 | 显示全部楼层
ID-b3LMr3 发表于 2021-11-8 21:12
小灯不亮,按下复位键就亮了,这是啥情况,有大佬知道吗

看你用什么下载器,下载器配置那里那里勾选自动复位运行
把使用前必读的说明文档仔细阅读一下
回复 支持 反对

使用道具 举报

发表于 2021-11-29 21:43:07 | 显示全部楼层
参考了各位大神的,最后发现我的是延时时间写短了。
//#include "stm32f10x.h"
void delay(unsigned int z)
{
        unsigned int x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

int main(void)
{
        //APB2使能时钟
        *(unsigned int*)0x40021018 |= (1<<3);
        //设置GPIO输入输出模式
        //*(unsigned int*)0x40010C00 |= (1<<4*0);                        //PB0绿灯
        //*(unsigned int*)0x40010C00 |= (1<<4*5);                        //PB5红灯       
        //*(unsigned int*)0x40011800 &=~((0x0F)<<(4*1));
        //*(unsigned int*)0x40010C00 &=~((0x0F)<<(4*1));       
        *(unsigned int*)0x40010C00 |= (1<<4*1);                        //PB5蓝灯       
       
        while(1)
        {
                //设置GPIO高低电平
                //*(unsigned int*)0x40010C0C &= ~(1<<0);                        //PB0绿灯
                //*(unsigned int*)0x40010C0C &= ~(1<<5);                        //PB0红灯
                *(unsigned int*)0x40010C0C &= ~(1<<1);                        //PB0蓝灯
                delay(5000);
                *(unsigned int*)0x40010C0C |= (1<<1);                        //PB0蓝灯       
                delay(5000);
        }
}

void SystemInit(void)
{
        // 函数体为空,目的是为了骗过编译器不报错
}
回复 支持 反对

使用道具 举报

发表于 2021-11-30 22:06:59 | 显示全部楼层
MrChen 发表于 2017-10-1 23:17
我也遇到这样的问题,一年过去了,你解决了吗

CRL的设置也要放到while(1)中,如果三种颜色的CRL都在while之前设置,就会先亮所有的颜色,然后才进入while循环。
        while(1)
        {
                GPIOB_CRL |= (1<<4*0);                                                //PB0绿灯
                GPIOB_ODR  &= ~(1<<0);
                delay(1000);
                GPIOB_ODR |= (1<<0);
                delay(1000);
               
                GPIOB_CRL |= (1<<4*1);                                                //PB1蓝灯
                GPIOB_ODR  &= ~(1<<1);
                delay(1000);
                GPIOB_ODR |= (1<<1);
                delay(1000);
               
                GPIOB_CRL |= (1<<4*5);                                                //PB5绿灯
                GPIOB_ODR  &= ~(1<<5);
                delay(1000);
                GPIOB_ODR |= (1<<5);
                delay(1000);
        }
回复 支持 反对

使用道具 举报

发表于 2022-1-7 10:37:47 | 显示全部楼层
error:  #5: cannot open source input file "core_cm3.h": No such file or directory
  #include "core_cm3.h"


你们有出现这个情况吗,我直接复制的代码,然后这样报错
回复 支持 反对

使用道具 举报

发表于 2022-1-10 17:14:17 | 显示全部楼层
嵌入式小明 发表于 2022-1-7 10:37
error:  #5: cannot open source input file "core_cm3.h": No such file or directory
  #include "core_c ...

回复的帖子不能删除的嘛?
回复 支持 反对

使用道具 举报

发表于 2024-7-7 21:15:31 | 显示全部楼层
#include "stm32f10x.h"
void delay(int j)
{
        while(j--);
}

int main (void)
{
*(unsigned int*) 0x40021018 |= ( (1) << 3 );
       
while(1)
        {
                *(unsigned int*) 0x40010C00 = 0;
    *(unsigned int*) 0x40010C00 |= ( (1) << (4*0) );
                *(unsigned int*) 0x40010C0C &= ~(1<<0);
                delay(1000000);
                *(unsigned int*) 0x40010C00 = 0;
    *(unsigned int*) 0x40010C00 |= ( (1) << (4*0) );
                *(unsigned int*) 0x40010C0C |= (1<<0);
          delay(1000000);
                *(unsigned int*) 0x40010C00 = 0;
                *(unsigned int*) 0x40010C00 |= ( (1) << (4*1) );
                *(unsigned int*) 0x40010C0C &= ~( 1 << 1 );
          delay(1000000);
                *(unsigned int*) 0x40010C00 = 0;
                *(unsigned int*) 0x40010C00 |= ( (1) << (4*1) );
                *(unsigned int*) 0x40010C0C |= ( 1 << 1 );
          delay(1000000);
                *(unsigned int*) 0x40010C00 = 0;
                *(unsigned int*) 0x40010C00 |= ( (1) << (4*5) );
                *(unsigned int*) 0x40010C0C &= ~( 1 << 5 );
          delay(1000000);
                *(unsigned int*) 0x40010C00 = 0;
                *(unsigned int*) 0x40010C00 |= ( (1) << (4*5) );
                *(unsigned int*) 0x40010C0C |= ( 1 << 5 );
          delay(1000000);
        }
}



void SystemInit(void)
{

}
回复 支持 反对

使用道具 举报

发表于 2024-7-7 21:16:07 | 显示全部楼层
半度丶 发表于 2024-7-7 21:15
#include "stm32f10x.h"
void delay(int j)
{

因为复位的时候无法控制状态,只能在循环的时候进行清0操作
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 20:41 , Processed in 0.042604 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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