[原创] 独轮自平衡车之stm32f7disco+cubemx+Timer6IT+Blink BY---wo4fisher

wo4fisher   2015-10-13 14:12 楼主
独轮自平衡车之stm32f7disco+cubemx+Timer6IT+Blink BY---wo4fisher
拿到STM32F7DISCO的板子有段时间了,从参加活动开始就一直准备软件环境,更新MDK,下载F7的DFP包,然后下载STM32CUBEMX,下载F7的lib,安装java jre等等,总算是告一段落。下面就以使用cube配置STM32F7,生成MDK工程代码,然后自己实现定时器中断0.5S,定时翻转STM32F7的F7--F10,正好是arduino connecter的A4--A1,实现led bink的一个效果,也算对前期工作的一个总结了。
首先看原理图

F7--F10引脚正好在arduino connecter的A4--A1,实现一个4位流水灯效果正好。
下一步安装CUBEMX,之前要安装java jre,没什么说的,下载安装...

安装CUBEMX

安装F7系列的固件包

然后点击new project ,如果是加载之前的配置工程,可以点load project

选择相应的开发板,也可以根据MCU型号进行选择,选择开发板F7disco进入工程可以看到,F7disco开发板的配置项就会显示出来,可以在此基础上进行配置。

因为本次试验是为了熟悉cube开发例程,例子比较简单,因此选择clear pinouts,清除配置信息。

进行时钟配置,TIMER6的时钟在APB1总线上,配置为50MHZ

pinout配置,配置F7--F10为输出,用来驱动led


进入配置选项,选择GPIO,配置F7--F10的工作模式

选择TIMER6,配置定时器预分频500,计数up模式,自动重载值为15535,根据APB1时钟配置,定时中断正好0.5s一次。

然后是保存工程,然后选“工程”,“生成工程代码”,配置好相关信息。OK,cube阶段告一段落。
用相关开发工具打开生成的初始化代码工程,我的环境是:

在MAIN.C文件中加入如下代码:

作用是:使能TIMER6时钟,配置中断优先级并使能TIMER6中断;然后再中断模式下启动TIMER6

在TIMER6中断服务函数中添加如下代码,实现led blink。




视频地址:[media]http://player.youku.com/player.php/sid/XMTM1ODY3ODY0OA==/v.swf[/media]


  • 2015-10-10_154656_lib.jpg
  • 2015-10-10_154422.jpg
  • 2015-10-10_154534_java.jpg
  • 2015-10-10_154626_cube.jpg
  • 2015-10-10_154656_lib.jpg
  • 2015-10-10_154809_new.jpg
  • 2015-10-10_160438_proj_1.jpg
  • 2015-10-10_160601_clr_pinout.jpg
  • 2015-10-10_173251_clk_conf.jpg
  • 2015-10-12_113555_gpiof7.jpg
  • 2015-10-12_113737_gpiof7-10.jpg
  • 2015-10-12_114203_GPIO_CONF.jpg
  • 2015-10-12_114331_cortexm7_conf.jpg
  • 2015-10-12_123325_tim6_conf.jpg
  • 2015-10-12_123639_LEDMDK.jpg
  • 2015-10-13_125829_main.jpg
  • 2015-10-13_125931_msp.jpg
  • 2015-10-13_135401_it.jpg
  • IMG_20151013_125701.jpg
  • IMG_20151013_125709.jpg
  • IMG_20151013_125710.jpg
水不撩不知深浅 人不拼怎知输赢

回复评论 (3)

期待楼主更多的分享,,
我要围观,,自平衡,,,
分享铸就美好未来。。。
点赞  2015-10-13 15:11
点赞  2015-10-13 19:45
点赞  2015-10-14 20:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复