你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 3683|回复: 4

[STM32L476] 【NUCLEO-L476RG开发】第一篇:GPIO简单操作—点亮LED

[复制链接]

10

主题

107

回帖

0

蝴蝶豆

高级会员

最后登录
2019-5-8
发表于 2015-11-18 19:57:22 | 显示全部楼层 |阅读模式
【NUCLEO-L476RG开发】第一篇:GPIO简单操作—点亮LED

            拿到476的板子也有一小会了,一直忙着没来得及研究,终于今天有空了,拿出来看看。
            一个新的板子拿到手里都会先研究下GPIO,最常做的就是点亮一个LED,当然首次接触STM32F476,我也是先从GPIO做起。
一,准备工作
       现在STM32出了越来越多的芯片,而且从去年开始推出了,底层代码神器,STM32CubeMx,当然对于大多数从寄存器做起的大神,可能这不算什么,可是对于很多初学者,或者很多新手,不用看底层寄存器确实还是有一些好处的,特别是L476常达1600多页的PDF,对于很多人来说就像噩梦一样!
       准备工作主要有三个:
       1、安装STM32cubemx及L4的库,这个方法教程太多了,百度各种都有
       2、安装KEIL软件,这边我推荐用keil,原因很多啦,主要还是ARM支持KEIL,当然肯定是优势很多了。
       3、当然是安装ST_LINK的驱动,NUCLEO是支持ST_LINK下载的,ST_LINK的驱动在论坛就有,大家直接下载集成驱动包会比较好一点,最好使用最新的,最新的好像是V3.6版本了。我记得文件名字是STSW-LINK004
       闲话少说,前言少叙,这边我们就首先打开cubemx新建一个项目,这边我给大家提醒的是,我们选择NUCLEO L476RG后,出现的界面是官方默认的设置,我建议很多新手不要去改,因为这些GPIO设置是官方已经设定好了,当然如果你很懂那就无所谓了,如下图所示:
       捕获.PNG
       然后点击生成代码,当然这边会让你设定目录和项目名称,需要注意的是目录不要有中文噢,不然会很麻烦的
二、正式开始
      用keil打开生成的代码。其实要修改的很简单,主要是因为cubemx已经给你做了很多工作了,所以你的工作很简单,如下在main.c中添加红色的部分,那么就可以操作L476上边的LED2了,可以看见这个灯每隔一秒亮一次灭一次。
      int main(void)
{
  /*USER CODE BEGIN 1 */
  /*USER CODE END 1 */
  /*MCU Configuration----------------------------------------------------------*/
  /*Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
  /* Configure the system clock */                           
SystemClock_Config();
  /*Initialize all configured peripherals */
MX_GPIO_Init();
  /*USER CODE BEGIN 2 */
  /*USER CODE END 2 */
  /*Infinite loop */
  /*USER CODE BEGIN WHILE */
while (1)
  {
  /*USER CODE END WHILE */  
  /*USER CODE BEGIN 3 */
         HAL_GPIO_WritePin(LD2_GPIO_Port,LD2_Pin,GPIO_PIN_SET);
         HAL_Delay(1000);
         HAL_GPIO_WritePin(LD2_GPIO_Port,LD2_Pin,GPIO_PIN_RESET);
         HAL_Delay(1000);  
  }
  /*USER CODE END 3 */
}
三、代码分析
       这个代码其实很多部分我们都不需要干涉,因为底层已经帮我们设定好了,特别是如果你采用官方默认的cubemx的设定的话,在第一张图中就表示,那些IO是什么功能,需要什么模式,都已经设定好了,当然频率等等,我们都采用的默认配置,主要就是红色的部分使我们自己添加的,那么红色的部分是什么意思呢,实际上就是HAL库的两个函数:
1、 HAL_GPIO_WritePin,总共有三个参数:第一个是GPIOA,及你要设定的是GPIOA,第二个是LD2_Pin,实际是PIN5,那么前两个参数的意思就是,我们要设定GPIOA5的值,实际上第三个GPIO_PIN_SETGPIO_PIN_RESET就是1或者0的意思。这边需要注意的是L476自带的是PA5高电平才能点亮灯,如图是原理图:
             捕获1.PNG
2、HAL_Delay,参数就一个,就是要延时的ms值。
四、总结
其实看到此处很多人可能会感觉,这些都是入门级别要知道的知识,其实也正是体现了cubemx的强大之处,只要一会会,一个新手就懂得操作GPIO了,实际上操作只能操作GPIO也可以做很多事情,再加上延时,甚至可以做一些简单的东西玩玩,比如操作继电器,做流水灯,花样灯等等。我的第一篇就用一个GPIO的操作开始,第二篇会带来一些有意思的东西。
注:附件里边是源代码,欢迎下载。


LED_L476RG.zip

下载

5.97 MB, 下载次数: 124, 下载积分: ST金币 -1

<
回复

使用道具 举报

10

主题

107

回帖

0

蝴蝶豆

高级会员

最后登录
2019-5-8
 楼主| 发表于 2015-11-18 20:00:00 | 显示全部楼层
当我写完文章,再去看stsw-link004时,没想到已经V3.7的版本了,升级也是越来越快了
回复 支持 反对

使用道具 举报

47

主题

3404

回帖

30

蝴蝶豆

版主

最后登录
2020-12-7
发表于 2015-11-18 20:13:38 | 显示全部楼层
多谢分享。。。

STMCU-Logo.png
回复 支持 反对

使用道具 举报

33

主题

1243

回帖

0

蝴蝶豆

论坛元老

最后登录
2019-3-9
发表于 2015-11-18 21:47:15 | 显示全部楼层
谢谢分享.png
回复 支持 反对

使用道具 举报

13

主题

106

回帖

0

蝴蝶豆

中级会员

最后登录
2018-4-5
发表于 2015-11-18 22:56:17 | 显示全部楼层
多谢分享!
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版