6回答

1收藏

【STM32F4探索套件】序列之8 ST官网高精简程序

STMCU STMCU 3297 人阅读 | 6 人回复 | 2014-08-20

本节我们将从硬件原理图、软件编写和下载验证3部分来分析,主要是从下面3个方面进行讲解:
1.硬件原理图
2.软件编写
3.下载验证
一、硬件原理图
硬件原理图很简单,在本序列的跑马灯里面就有。这里就不作过多的介绍。
下面主要看的是STM32F4探索套件的LED灯部分的原理图。

从上面的原理可以看见,很简单,只要给一个高电平LED就会亮,这就不多讲了。STM32F4探索套件就是两个用户LED灯,LED3LED4一个位绿色,一个为红色。
二、软件编写
在写程序的时候,首先按一下步骤检查是否已经完备。
1.确保JP3CN4跳线是连接的【Discovery模式】。
2.通过Min USB把开发板和电脑连接,USB供电。
3.通过ST-Link/V2来下载程序。
4.检查USB通讯的LED1灯是否亮,电源灯LED2是否亮(3.3v)
5.以上正常就可以进行下面的工作了。
这个是官网的一个精简的代码,没有使用ST的库,是寄存器操作的,大家可以参考,效率的确很高。不多说,先上主程序,完整程序在附件里面。
#include "STM32F4xx.h"
#include "LED.h"
const unsigned long led_mask[] = {1UL << 13, 1UL << 14};
void LED_Init (void) {
RCC->AHB1ENR  |= (1UL << 6);           /* Enable GPIOG clock             */
        /* Configure LED (PG13, PG148) pins as push-pull outputs */
GPIOG->MODER  &= ~((3UL << 2 * 13) | (3UL << 2 * 14));
GPIOG->MODER  |=   (1UL << 2 * 13) | (1UL << 2 * 14);
GPIOG->OTYPER &= ~((1UL <<     6) | (1UL <<     8));
}
/*----------------------------------------------------------------------------
  Function that turns on requested LED
*----------------------------------------------------------------------------*/
void LED_On (unsigned int num) {
  if (num < LED_NUM) {
    GPIOG->BSRRL = led_mask[num];
  }
}
/*----------------------------------------------------------------------------
  Function that turns off requested LED
*----------------------------------------------------------------------------*/
void LED_Off (unsigned int num) {
  if (num < LED_NUM) {
    GPIOG->BSRRH = led_mask[num];
  }
}
/*----------------------------------------------------------------------------
  Function that outputs value to LEDs
*----------------------------------------------------------------------------*/
void LED_Out(unsigned int value) {
  int i;
  for (i = 0; i < LED_NUM; i++) {
    if (value & (1<<i)) {
      LED_On (i);
    } else {
      LED_Off(i);
    }
  }
}
是不是很精简啊。
三、下载验证



完整程序下载:
ST精简LED灯代码.zip (40 KB, 下载次数: 4)

[原创] 班门弄斧——个人原创基地
https://www.cirmall.com/bbs/thread-41384-1-1.html
分享到:
回复

使用道具 举报

回答|共 6 个

倒序浏览

沙发

奋斗哥

发表于 2014-8-20 21:00:45 | 只看该作者

非常好的教程
板凳

outstanding1573

发表于 2014-8-21 15:06:38 | 只看该作者

奋斗哥 发表于 2014-8-20 21:00
非常好的教程

  谢谢 欢迎常来哦
[原创] 班门弄斧——个人原创基地
https://www.cirmall.com/bbs/thread-41384-1-1.html
地板

飞翔-396652

发表于 2014-12-8 12:22:02 | 只看该作者

不错 太好太好 喜欢
5#

outstanding1573

发表于 2014-12-8 21:12:27 | 只看该作者

飞翔-396652 发表于 2014-12-8 12:22
不错 太好太好 喜欢

   欢迎啊
[原创] 班门弄斧——个人原创基地
https://www.cirmall.com/bbs/thread-41384-1-1.html
6#

shaoziyang

发表于 2014-12-8 22:45:58 | 只看该作者

精简的代码,容易懂,方便用,大家都喜欢。
7#

outstanding1573

发表于 2014-12-9 08:23:53 | 只看该作者

shaoziyang 发表于 2014-12-8 22:45
精简的代码,容易懂,方便用,大家都喜欢。

是的      
[原创] 班门弄斧——个人原创基地
https://www.cirmall.com/bbs/thread-41384-1-1.html
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条