[STM32F7] 【NUCLEO-F767】STM32F767运行基于mbed平台的RTOS

[复制链接]
2519|1
 楼主| hbzjt2011 发表于 2016-7-29 15:18 | 显示全部楼层 |阅读模式
本帖最后由 hbzjt2011 于 2016-7-29 15:38 编辑

          这两天有幸在二姨家获得了STM32F767 Nucleo-144开发板,这块板子号称是“史上最强的Nucleo”,下面就进行简单的介绍和测试。
一、外观介绍:
          拿到开发板后,与之前的Nucleo开发板相比,第一感觉就是F767的个头大好多,与Nucleo-64相比,它的外设接口更为丰富,尤其是增加了USB接口和以太网接口,而且现在的布局看上去更加协调了。
349177894130009604.jpg 679484347238543373.jpg
          到目前为止,ST公司共推出了三种类型的Nucleo开发板,分别是:Nucleo-32,Nucleo-64,Nucleo-144,三种开发板的性能依次增强。
90fd3da6gw1f659bqjqebj20jg0gsn0k.jpg
         三种Nucleo开发板对比:
516380596796987670.jpg
二、控制器与Nucleo-F767ZI特性介绍:
         Nucleo-F767ZI板载一颗STM32F767ZIT6U控制器,支持Arduino,ST Zio和Morpho接口。用户可以更加灵活便携的进行STM32控制器开发,而且其特性、功耗和性能与之前的控制器相比都要提高更多。板载的ST Zio接口可以使用户选择合适的扩展板应用于自己的项目。此外,板载的ST-Link/V2-1调试器无需用户购买额外的编程调试工具。在开发过程中,意法公司提供了完备、高效的HAL库和例程,用户只需进行简单的步骤即可完成自己的项目开发。 863303082400565072.jpg
在开发工具上,依旧支持:
  • Keil:MDK-ARM
  • IAR:EWARM
  • GCC-based IDEs
  • ARM mbed online
等多种工具,稍后楼主以mbed online为例进行介绍。
STM32F767ZIT6U控制器特性:
  • LQFP144封装
  • 32位ARM Cortex-M7+FPU+Chrom-ART加速器
  • 最大216MHzCPU主频
  • 供电电压1.7V~3.6V
  • 2MB Flash,512KB SRAM
  • 168个具有外部中断功能的GPIO
  • 3路24通道12位ADC
  • 2路12位ADC
  • 8路USART/UART
  • 4路I2C
  • 6路SPI
  • 2路高级控制定时器
  • 1路低功耗定时器
  • 12路通用定时器
  • 2路开门狗定时器
  • 2路CAN 2.0B接口
  • 2路SAI
  • USB 2.0 OTG HS
  • USB 2.0 OTG FS
  • Ethernet
Nucleo 特性:
  • 两种扩展接口:1、Arduino Uno 3 接口   2、ST Morpho接口
  • 板载SWD接口的ST-Link/V2-1 调试编程器:通过选择不同的跳线方式可以作为单独的ST-Link调试器使用
  • 灵活的供电方式:1、USB或外部供电(3.3V,5V,7~12V)    2、电源管理接口
  • 三个用户LED
  • 两个按键:用户按键和复位按键
  • 支持三种不同接口的USB:1、虚拟串口  2、大容量存储设备  3、调试接口
  • 10/100Mbps以太网接口
  • USART
Nucleo F767引脚映射:
xnucleo_f746zg_morpho_left_pinout.png.pagespeed.ic.ywsOiyQhwc.png
xnucleo_f746zg_morpho_right_pinout.png.pagespeed.ic.5frhfnHM04.png
xnucleo_f746zg_zio_left_pinout.png.pagespeed.ic.jvWuxBLFAE.png
xnucleo_f746zg_zio_right_pinout.png.pagespeed.ic.s11-AP7mXw.png

三、项目开发:
        基于以上认识,接下来就可以进行具体的项目开发了,楼主利用mbed online给F767跑了个简单的RTOS。
1、使用浏览器打开mbed官网(https://developer.mbed.org/),并登陆自己的账号,点击Compiler;
Screenshot_2.png
2、打开编辑环境后,点击New新建工程项目;
Screenshot_3.png
3、弹出新建项目对话框后,选择开发平台,由于现在还没有对F767ZI的支持,我们选择F746,工程模板选择RTOS basic example,工程名称为Nucleo_rtos_basic,然后点击OK按钮;
Screenshot_4.png
4、待项目生成成功后,我们对程序进行修改和编辑,这里我以三个LED翻转显示和串口输出为例;
Screenshot_5.png
工程源码:
  1. include "mbed.h"
  2. #include "rtos.h"

  3. void print_char(char c = '*')
  4. {
  5.     printf("%c", c);
  6.     fflush(stdout);
  7. }

  8. void print_string()
  9. {
  10.      printf("\nHello 21ic\n");
  11.      printf("STM32F767 TEST!\n");
  12.      fflush(stdout);
  13. }
  14.    
  15. DigitalOut led1(LED1);
  16. DigitalOut led2(LED2);
  17. DigitalOut led3(LED3);

  18. void print_thread(void const *argument)
  19. {
  20.     while (true) {
  21.         Thread::wait(1400);
  22.         print_string();
  23.     }
  24. }

  25. int main()
  26. {
  27.     printf("\n\n*** RTOS basic example ***\n");
  28.     Thread thread(print_thread, NULL, osPriorityNormal, DEFAULT_STACK_SIZE);
  29.     while (true) {
  30.         led1 = !led1;
  31.         led2 = !led2;
  32.         led3 = !led3;
  33.         Thread::wait(1000);
  34.     }
  35. }
5、程序编写完成后,点击Compile按钮,编译程序;
Screenshot_6.png
程序编译中:
Screenshot_7.png
6、待程序编译完成后,有Success提示,并生成bin文件,我们将bin文件直接下载到NODE_F767ZI虚拟优盘中,程序即可运行。 Screenshot_8.png

7、程序运行效果:
LED1、LED2、LED3翻转显示,并有串口输出。
663466146157652963.jpg
Screenshot_9.png

strang 发表于 2016-7-29 17:22 | 显示全部楼层
楼主分享不错,学习一下~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎参与LabVIEW版块的讨论学习! 点我一键即达

323

主题

2908

帖子

45

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