历史上的今天
返回首页

历史上的今天

今天是:2025年02月14日(星期五)

正在发生

2019年02月14日 | 跑马灯实验-寄存器版

2019-02-14 来源:eefocus

1、参考资料  《STM32F1开发指南-寄存器》-第六章 跑马灯实验6.1小节

       《STM32中文参考手册_V10》-8.2 GPIO寄存器描述  7.3.7 APB2外设时钟使能寄存器(RCC_APB2ENR)


2、编写步骤:

         使能IO口时钟。配置寄存器RCC_APB2ENR。

         初始化IO口模式。配置寄存器GPIOx_CRH/CRL

         操作IO口,输出高低电平。配置寄存器GPIOX_ODR或者BSRR/BRR。


3、详细

      新建文件夹HARDWARE,在此文件夹中新建led.c,led.h   在工程中新建分组HARDWARE,在path中添加路径

      RCC_APB2ENR寄存器   

      

      led.c

      #include "led.h"

      #include "stm32f10x.h"

      

      void LED_Init()

      {

          //对PB和PE进行时钟使能   

          RCC->APB2ENR |= 1<<3; //使能GPIOB

          RCC->APB2ENR |= 1<<6; //使能GPIOE

          

          //GPIOB.5  推挽输出,速度50MHz

          GPIOB->CRL &= 0xFF0FFFFF; //将5四个位清零

          GPIOB->CRL |= 0x00300000; //赋值

          GPIOB->ODR |= 1<<5;    //PB5输出高电平

          

          //GPIOE.5

          GPIOE->CRL &= 0xFF0FFFFF; //将5四个位清零

          GPIOE->CRL |= 0x00300000; //赋值

          GPIOE->ODR |= 1<<5;    //PE5输出高电平

      }

      

      main.c

      

      int main()

      {

          while(1)

          {

              GPIOB->ODR |= 1<<5;    //PB5输出高电平

              GPIOE->ODR |= 1<<5;    //PE5输出高电平

              delayms(300);

              

              GPIOB->ODR &= ~(1<<5); //PB5输出低电平

              GPIOE->ODR &= ~(1<<5); //PE5输出低电平

              delayms(300);

          }

      }


推荐阅读

史海拾趣

问答坊 | AI 解惑

梦幻五环如何发光

焰火渐渐熄灭,却在地上聚集出了一个奥运五环的标志。这个标志像是吸引了附近的火星,越来越亮,后来更是缓缓升上了半空——奥运开幕式上的这段表演几乎只能用“梦幻”来形容。像网友们评价的那样,这是一个富有冲击力和想象力的表演项目。那么,这 ...…

查看全部问答>

电子技术视频教程

714电子实验室下载资源整理,提供大量电子技术视频教程,大型EDA软件和教程等下载。…

查看全部问答>

急!安装凌华采集卡、控制卡 出现的问题

跪求高手指点:    在安装凌华采集卡驱动时,系统提示:If your drivers DO NOT perform DMA and INTERUPT Operation ,                         & ...…

查看全部问答>

CORTEX-M3启动文件

昨天参加了MCUDAY 研讨会,得到一个消息是Cortex-M3启动文件可以用C语言编写,不知论坛的朋友们有谁有编写启动文件的经验,给小弟介绍一下。…

查看全部问答>

关于数据采集卡的问题

   本人新做一个有关数据采集的项目,问些比较菜的问题~!!  见笑啊    数据采集卡是12位的,用256k的频率进行数据采集,fifo缓冲区是8k*16bit。    我想知道这个缓冲区能存多少个数,缓冲区存满需要多 ...…

查看全部问答>

计算器如何运算1+1=2

就拿我们现实中普通的计数器来说吧,当我按下1键后,在它内部会产生什么情况?难道会产生一股电流?这股电流如何把1这个信息存储在内部某个元件上啊?这个元件是如何存储它的啊?我需要详细的了解最最底层的原理啊,硬件是如何识别0和1的?如何存储 ...…

查看全部问答>

关于三星Armv4-2410ep教学开发板上串口的问题

各位大师们好     我现在在三星Armv4-2410ep教学开发板上做串口通信的开发。我是在Windows Ce 4.2的平台下作的。台子上的Serial 0,我可以轻松搞定,可是Serial 2我怎么调也调不成功?这是为什么?     答案正确,一定给分 ...…

查看全部问答>

ARM,FPGA学习群QQ:37392778,有高级工程师指导做项目,想学习者加入

想学习ARM,FPGA,相关开发的,有工程师指导,现有开发项目,可长期指导…

查看全部问答>

【求助】keilc 编程 串口输出 显示数组元素

unsigned char *c[25]={\"00\",\"01\",\"02\",\"03\",\"04\",\"05\",\"06\",\"07\",\"08\",\"09\",\"10\",\"11\",\"12\",\"13\",\"14\",\"15\",\"16\",\"17\",\"18\",\"19\",\"20\",\"21\",\"22\",\"23\",\"24\"}; //向串口发送一个字符串,长度不 ...…

查看全部问答>