zoukankan      html  css  js  c++  java
  • 4.寄存器点亮LED

    看了视频,也试着用操作寄存器的方法点亮下LED。

    应用keil5编译软件。

    1.首先创建新工程。 如何创建工程就不介绍了

    2.添加启动文件

     启动文件是由官方给出的。关于103的就有很多种。

     大部分都是容量的不同.我们这里用的是startup_stm32f10x_hd.s,因为我们的芯片是STM32F103ZET6,这里是大容量的

    这里可以查看ST公司官方给出的选项参考

     在其他的文章中我们会详细解释这个启动文件,这里就先不介绍了。启动文件就是汇编编写的文件,用于调入__main,进入C编程。

    3.添加好了启动文件,之后加入我们的main.c(应为也是学习着编程,就实现功能就行,没太注重格式)

    在main.c中开始用C语言编程。

    int main(void)

    {

      while(1);

    }

    4.点亮LED还是要会看原理图的。在开发板中,查看原理图

     我们可以看出,LED是共阳极的,也就是接了3.3V电源。要想点亮LED,我们只需要在管脚上输出低电平即可。

    那如何让管脚输出低电平呢?

     根据STM32手册查看外设定义:

    //端口配置低寄存器(GPIOx_CRL)(端口x配置位(y = 0…7)) (x=A..E)--GPIOB_CRL =0x00300000;
    //23:22-CNFy[1:0]:00:模拟输入模式;
    //21:20-MODEy[1:0]:11:输出模式,最大速度50MHz;
    GPIOB_CRL =0x00300000;
    //端口输出数据寄存器(GPIOx_ODR) (x=A..E)

    GPIOB_ODR =0x00000000;

    在点亮LED的操作中,其实GPIO也只用这2个寄存器就是可以了。一些其他复杂的操作,我们会在以后的文章中记录说明。

    关于时钟话题:

    任何操作都是需要开启时钟,我们这里只是打开了GPIO上的时钟,GPIO是挂接在APB2中,AHB系统总线。

     我们只开启就好,暂不考虑配置时钟,找到APB2的寄存器,开启GPIOB的时钟就可以了。

    //RCC_APB2ENR = 0x00000008;这个只是打开了IOPB的开关.
    //使能了GPIOB的时钟
    RCC_APB2ENR = 0x00000008;

    //这里的时钟使用的是内部时钟HSI,

    这样我们就可以下载至开发板中,去点亮LED了。

    注意,在Debug中选好配置。

  • 相关阅读:
    aodquery,clientdataset数据控件之间的速度区别
    centos防火墙相关
    centos安装jdk,精简
    delphi 操作excel复制区域功能呢
    centos安装redis,最靠谱的教程
    图像识别,借助百度云,上传图片实现逻辑
    LinkedHashmap和HashMap对比以及说明
    Windows环境下Zookeeper安装和使用
    你不知道的JavaScript--Item1 严格模式
    jQuery学习之旅 Item2 选择器【二】
  • 原文地址:https://www.cnblogs.com/qq376142178/p/12629603.html
Copyright © 2011-2022 走看看