chen00000009 发表于 2017-4-26 00:18:45

【NUCLEO-L496ZG评测】实验演示

本帖最后由 chen00000009 于 2017-4-26 00:26 编辑

4.实验演示下面演示一下利用CubeMX加上Keil MDK-ARM进行开发,通过按键依次点亮板载三个LED的同时串口打印出一段字符。这个工程同时可以为后续coremark跑分需要的工程做准备。CubeMX是ST的代码配置工具,用这个工具可免除写底层代码的麻烦,直接在CubeMX生成的基础文件上面添加需要的应用代码即可完成一个工程的开发。打开CubeMX。点击New Project,在MCU Select界面中选择STM32L496ZGT,如图4-1所示,然后点击OK。
图4-1 选择MCU首先进行引脚配置。在原理图中找到三个LED对应的管脚,如图4-2所示:
图4-2 LED管脚在Pinout界面下找到PC7、PB7与PB14,配置为普通的GPIO-output口。前面开发板基本组成那里介绍过,ST-LINK是连接在MCU的LPUART1上面,分别为PG7和PG8。这里首先需要在Pinout界面左侧选择LPUART1,配置为Asynchronous,然后点击MCU的PG7和PG8,选择LPUART1的相应功能,如下图所示
图4-3 串口设置完成引脚配置之后进行时钟配置。由于这个Nucleo板没有焊接外部高速晶振,因此本工程中选择使用HSI,此晶振为MCU自带的。进入Clock configuration界面,随后在Clock configuration界面修改以下两个位置:1、systemclock Mux选择PLLCLK2、HCLK选择80MHz如下图所示
图4-4 时钟设置回车,系统会计算出一个比较合适的参数最后进行一些功能方面的配置。打开Confiuration界面,进行下面步骤:点击LPUART1按钮,选择串口通信的配置,将数据位调整为8位,其余不变,保存。
图4-5 串口通信设置最后点击Project——Generate code进行代码的生成。输出的文件夹和文件名可以任选,IDE需要选择MDK-ARM V5。
图4-6 生成底层代码随后在生成的文件中找到那个MDK的project的工程文件并打开。下面来看看如何使用GPIO口。打开stm32l4xx_hal_gpio.h,然后找到如下图所示程序段
图4-7 IO输入输出代码这里可以看出写GPIO的程序是HAL_GPIO_WritePin(GPIO_TypeDef*GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);而串口打印的语句为Printf([打印的内容]);因此,只要在之前的while(1)中增加HAL_GPIO_WritePin(GPIOC,GPIO_PIN_7, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14, GPIO_PIN_RESET);Printf(“Green”);HAL_Delay(300);HAL_GPIO_WritePin(GPIOC,GPIO_PIN_7, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14, GPIO_PIN_RESET);Printf(“Blue”);HAL_Delay(300);HAL_GPIO_WritePin(GPIOC,GPIO_PIN_7, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14, GPIO_PIN_SET);Printf(“Red”);HAL_Delay(300);即可循环点亮板载的三个LED的同时会打印出当前LED的颜色。然后点击编译,编译无误之后下载调试程序,最终实验的结果如下 图4-8 演示结果1打印的字符如下:
图4-9 演示结果2

damiaa 发表于 2017-4-26 09:22:17

OK OK OK OK
页: [1]
查看完整版本: 【NUCLEO-L496ZG评测】实验演示