野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11293|回复: 6

交作业-08-使用寄存器点亮LED(第2节)—寄存器映射代码讲解

[复制链接]
发表于 2019-2-14 16:09:41 | 显示全部楼层 |阅读模式
#include "stm32f10x.h"
unsigned int i;
int main(void)
{
        //打开GPIOB晶振
        *(unsigned int*)0x40021018 |=(1<<3);
        //置位GPIOB寄存器为0
        *(unsigned int*)0x40010C00 &=~(0x0f<<(4*0));
        //设置GPIOB_ODR0输出方式
        *(unsigned int*)0x40010C00 |=(1<<(4*0));
        while(1)
        {
                //BSRR寄存器为1,灯灭
        *(unsigned char*)0x40010C10 |=(0x01<<0);
    //延时               
          for(i=200000;i>0;i--);
                //BSR寄存器为1,灯亮
        *(unsigned int*)0x40010C14 |=(1<<0);
                //延时
          for(i=200000;i>0;i--);
               
        }
       
}
void SystemInit(void)
{
       
}

看完该视频后,自己看参考手册,再根据寄存器配置出相应程序,没想到这么容易写出来了,不得不赞一下自己。

回复

使用道具 举报

发表于 2019-2-15 08:56:46 | 显示全部楼层
这不错啊,哈哈,继续学下去,用库函数会感觉很爽
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-15 09:59:02 | 显示全部楼层
flyleaf 发表于 2019-2-15 08:56
这不错啊,哈哈,继续学下去,用库函数会感觉很爽

谢啦,朝这方向努力!
回复 支持 反对

使用道具 举报

发表于 2019-2-18 15:44:59 | 显示全部楼层
谢谢啦,我还是比较喜欢寄存器操作!
回复 支持 反对

使用道具 举报

发表于 2019-2-19 20:34:00 | 显示全部楼层
不要用寄存器,进度慢,入门的话建议先用库,先熟悉一下,毕竟就算是工作也是用库比较多。什么情况会用到寄存器,空间不够,对指令速度有需求。
回复 支持 反对

使用道具 举报

发表于 2019-2-19 20:36:17 | 显示全部楼层
zzz80675 发表于 2019-2-18 15:44
谢谢啦,我还是比较喜欢寄存器操作!

你是用多了,寄存器都很熟悉,那没办法,用寄存器确实爽。
回复 支持 反对

使用道具 举报

发表于 2019-2-21 15:21:43 | 显示全部楼层
实际工作都是寄存器+库函数的吧,一般都是用寄存器写好驱动包装成函数的,但是如果驱动出问题了,那就需要看寄存器配置了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 12:28 , Processed in 0.030610 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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