[应用相关] 使用STM32CubeMX快速开发应用

[复制链接]
1795|4
 楼主| deviceplugs 发表于 2016-11-29 19:09 | 显示全部楼层 |阅读模式
本文使用强大的STM32CubeMX配置STM32外设,快速生成工程模板,演示了LED闪烁和串口例程。
一、资源分配

STM32F769I-DISCO板载2颗用户LED,LD1位红色,LD2为绿色,如下:
根据原理图,LD1连接到STM32F769NIH6的PJ13,LD2连接到了PJ5,GPIO输出高电平即可点亮对应的LED。
板载STLINK具有虚拟串口功能,连接到了STM32F769NIH6的PA9和PA10,查阅数据手册,该GPIO可复用为UART1。

一、STM32CubeMX配置步骤


Step1:打开STM32CubeMX,新建工程,选择MCU型号为STM32F769NIH6;

Step2:选择时钟源,根据原理图,STM32F769I-DISCO有外部有源晶振25MHz,因此时钟源需要选择BYPASS Clock Source,并开启SW仿真调试;

 楼主| deviceplugs 发表于 2016-11-29 19:10 | 显示全部楼层
Step3:这里串口一定要是PA9和PA10,UART1,直接使能USART1会发现引脚不是PA9和PA10,需要先在引脚PA9、PA10上选择串口功能,然后在左边外设栏使串口1为异步模式;
Step4:配置LED引脚为输出模式,可在搜索框输入引脚名以便快速定位,我们需要配置PJ5和PJ13;
Step5:把系统时钟配置为最大216MHz;
Step6:配置串口参数为115200 b/s, 8 bits data, no parity, 1 stopbit, no flow control
Step7:给LED引脚添加用户标签;

 楼主| deviceplugs 发表于 2016-11-29 19:11 | 显示全部楼层
Step8: STM32F7 集成了 Cortex®-M7,其特点是具有 1 级缓存 ( L1- 缓存),该缓存分为两个缓存:数据缓存 ( D- 缓存)和指令缓存( I- 缓存),这样可以实现具有最佳性能的哈佛架构。这些缓存使得即使在高频率下也可以达到零等待状态。默认情况下,指令和数据缓存是禁用的,我们这里把它开启(本例程不开启它也可以)。
Step9:最后点击菜单栏的齿轮图标即可生成工程,旁边的按钮用于生成PDF配置报告;
填写工程名字、保存路径、IDE(这里选Keil);
在Code Generator选项卡勾选下“为每个外设生成单个的.c和.h文件”以方便工程文件管理;

 楼主| deviceplugs 发表于 2016-11-29 19:12 | 显示全部楼层
一、用户软件
生成工程后,使用Keil打开。
要想使用C标准输出函数printf需要把它重映射到串口1,在uart.c文件添加如下代码即可,另外需要注意下Keil选项卡需勾选微库(默认是勾选了的);
  1. #ifdef__GNUC__
  2. /* WithGCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
  3. set to'Yes') calls __io_putchar() */
  4. #definePUTCHAR_PROTOTYPE int __io_putchar(int ch)
  5. #else
  6. #definePUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
  7. #endif /*__GNUC__ */
  8. /**
  9. * @briefRetargets the C library printf function to the USART.
  10. * @paramNone
  11. * @retvalNone
  12. */
  13. PUTCHAR_PROTOTYPE
  14. {
  15. /* Placeyour implementation of fputc here */
  16. /* e.g.write a character to the EVAL_COM1 and Loop until the end of transmission */
  17. HAL_UART_Transmit(&huart1,(uint8_t *)&ch, 1, 0xFFFF);
  18. returnch;

  19. }

在mxconstants.h文件添加LED控制宏定义;

 楼主| deviceplugs 发表于 2016-11-29 19:12 | 显示全部楼层
最后在main.c文件编写测试代码,翻转LED1-打印字符串-延时500ms-翻转LED2;
编译,烧录好后,打开串口调试助手,设置对应参数,按一下板卡上的黑色复位键,程序开始运行;


您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

135

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部