【STM32F723E-DISCO开发板试用体验】05-BSP例程解析之简介

  • cztqwan
  • LV5工程师
  • |      2017-09-12 08:37:25
  • 浏览量 1356
  • 回复:0
【STM32F723E-DISCO开发板试用体验】05-BSP例程解析之简介一、简介 在中STM32Cube库中,提供了ST每一款开发板的示例代码,对于STM32F723E-Discovery,在STM32Cube_FW_F7_V1.7.0\Projects\STM32F723E-Discovery\Examples\BSP\目录下提供了一个板级支持包的示例工程,该工程包括了STM32F723E-Discovery板载资源的测试例程,非常好地封装了底层驱动代码。 先来看下BSP工程的结构。 主要的源文件分布在以下4个工程目录中。 Drivers\BSP\STM32F723E-Discovery:和STM32外设接口相关的驱动和功能实现; Drivers\BSP\Components:驱动芯片的驱动程序; Examples\User:主函数和Demo例程; Examples\Utilities:实现LCD显示LOG的功能。 接下来,从main.c开始分析,看看都有哪些Demo。 在main.c中,定义了一个BSP_DemoTypedef类型的结构体数组,BSP_DemoTypedef的定义如下: 所以,BSP_examples数组中的LCD_demo、Touchscreen_demo1等就是指向各个Demo的函数指针,LCD_demo、Touchscreen_demo1等函数分散在各个Demo文件中。 主函数中,首先初始化了MPU,设置了LCD和PSAM的地址保护,然后开启了CPU Cache,接着初始化HAL库和时钟,然后是LED、用户按键和LCD的初始化。触摸屏和音频等驱动的初始化不在主函数中进行,而是在各个Demo函数中进行。 Display_DemoDescription()函数在LCD显示初始界面,提示按键按下会进入的Demo。 在while循环中,检测用户按键是否被按下,如果按键按下,就将索引加1,并执行相应的Demo函数。 二、LED和按键代码解析 首先,从简单的来,先分析LED和按键代码的实现。LED和按键的初始化代码在stm32f723e_discovery.c文件中,该文件包含了STM32F723E-Discovery底层接口的初始化和操作函数的封装。 从原理图可以知道,LED连接在开发板的PA7和PB1引脚上。LED的初始化代码比较简单: 其中用到了一些对IO引脚进行宏定义,代码非常简洁。 除了初始化函数,还实现了操作LED点亮、熄灭和翻转的控制函数: 用户按键的电路图如下,按键连接在开发板的PA0引脚上。 按键的初始化可以根据输入参数选择模式,分为GPIO模式和中断模式,在主函数中使用的是GPIO模式,即轮询分方式。 源码中还实现了一个获取按键状态的函数,可以返回当前连接按键的引脚的电平状态。 三、效果 BSP例程结合了LCD、触摸屏、SRAM、Flash和音频功能,通过User按键实现各个Demo的切换,实际效果如下:
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子