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

查看: 3671|回复: 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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版