完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>
本帖最后由 xuxi131 于 2016-11-20 15:00 编辑
【NUCLEO-F412ZG试用体验】+ USB HID接口实验
(
一)
NUCLEO-F412ZG
开发板:
这次有幸通过
德赢Vwin官网 网
拿到
NUCLEO-F412ZG
开发
套件,下图左边就是
144PIN
的
NUCLEO-F412ZG
,
右边是
64PIN
的NUCLEO-L476RG:
![]()
144PIN
的
NUCLEO-F412ZGPCB
板大了不少,自然引出脚多,相对可使用内部设备增多,可以进行更多试验,比
NUCLEO-64PIN
板还增加一个USB_MircoAB
插座,能进行USB
设备和USB OTG
方面的试验。看到
NUCLEO-F412ZG
开发板下部有很多没有帖的元器件,是以太网PHY部分,所以还可以利用,我的想法是: 在STM32F412ZG的实验做完后,添加下部的器件的同时,更换STM32F412ZG芯片为STM32F407或STM32F429甚至换成STM32F746或STM32F767,就可变成NUCLEO-F429ZI,NUCLEO-F746ZG,NUCLEO-F767ZI开发板,并可进行以太网功能的实验。
(
二)USB HID
鼠标实验:
1.
试验内容:
本实验利用NUCLEO-F412ZG的CN13 USB接口,模拟一个HID设备即鼠标的功能。在NUCLEO-F412ZG开发板上,可供编程使用的人机交互器件不多,只有蓝色的B1按扭,和LD1,LD2,LD3,三个发光管。所以综合考虑后,设定程序运行时鼠标自动循环移动,B1按扭模拟鼠标右键功能。
程序最终运行时为: 当CN13 USB接口接入电脑USB口时,电脑识别出一个人体学USB输入设备(HID设备),一个鼠标其他指针设备中的HID-compliantmouse设备(如下图),程序模拟鼠标自动按菱形◇路径快速循环移动,按键B1模拟鼠标右键,当第一次按下时弹出右键菜单并停止鼠标循环移动,如再按下B1,鼠标进入快速循环移动。 在鼠标自动按菱形◇路径快速循环移动时,LD1,LD2,LD3也循环点亮,点亮循环速度就是鼠标移动的速度,按B1后LD1,LD2,LD3变为另一种慢速循环点亮,代表停止模拟鼠标自动移动。
![]()
电脑识别出的USB设备
下面介绍用ST32CubeMX生成上述程序的初始化代码,在MDK5.17环境,加上试验内容代码的详细方法,并附上源代码和目标代码文件。
2.用STM32CubeMX生成初始代码:
运行STM32CubeMX,点击Now Projet建立新工程,在弹出的窗口中选择Board Selector页, Type of Board下拉框中选择Nucleo144,在MCU Series下拉框中选择STM32F4,构选Initalize all peripherals with their default Mode。然后在Boradds List: 3Item框中双击第三项:Nucleo144NUCLEO-F412ZG 进入主配置,见下图:
![]()
在主配置中:
①选择Pinout页,选配项为下图
![]() ![]()
②选择ClockConfigura
tion页,选配项为下图
![]()
③
选择Configuration
页面可查看或更改设备参数等。如下图
![]()
④
点击主菜单中的Projectg
下拉选择Settings…
弹出ProjectSettings
窗口,
在其中选择工程名称,与存储位置,并在工具链中选择MDK-ARM V5
。如下图
![]() ![]()
⑤点击主菜单中的Projectg下拉选择Generate Code最终生成初始代码,下步进入MDK开发环境添加部分应用代码后编绎。
3.MDK配置及编绎:
特别要注意的是在进入MDK 时第一次使用你的MCU器件时在MDK中可能没有配置,在打开上述用STM32Cube生成的工程时会自动弹出Pack Installer窗口,如果没弹出可点选Pack Installe图标,如下图:
![]() 在弹出的窗口中点击 Packs 菜单选中 Check For Updates 进行升级完后,查看 Device 中有 STM32F412ZGTx 器件后就可打开工程使用了,并且在 Option for Target 中的 Device 中可选择 STM32F412ZGTx 。 ![]()
上面步骤完成后,就可打开工程开始添加程序
添加 鼠标自移动速度,步进点数定义:
![]()
添加部分:
①添加一个程序组Driver/BSP/STM32F4xx_Nucleo,并添加stm32f4xx_nucleo_144.c文件。 ②在stm32f4xx_it.c文件中SysTick_Handler函数中添加按键处理代码。 ③ 在 main() 函数中添加模拟鼠标自动循环移动的代码。 ④其余细节部分参见后面的源代码。
完成后进行编绎,点击load图标下载到开发板中运行:
![]() ![]()
如果LD1,LD2,LD3快速循环闪烁,说明程序运行正常,用USB线从CN13连到电脑USB口,能见到鼠标快速循环移动。压B1按键会弹出右键菜单。
下面是程序HEX文件和工程文件源代码: ![]() ![]() 注意:下载hex文件到开发板时,不能使用STVP下载,原因是最近版本的STVP都不支持STM32F412,官方没有 更新支持STM32F412。所以只能用STM32 ST-LINK Utility下载了。 |
|
相关推荐
|
|
482 浏览0 评论
使用stm32l451片子,对ad7606进行3通道100k采样值跳动问题?
1304 浏览1 评论
STM32进行DMA数据转运,为什么只有A组最后一位数据被转运到B组去?
1748 浏览2 评论
2049 浏览3 评论
1637 浏览0 评论
小黑屋|手机版|Archiver|德赢Vwin官网(湘ICP备2023018690号)
GMT+8, 2024-8-31 18:12, Processed in 0.719950 second(s), Total 67, Slave 49 queries .
Powered by德赢Vwin官网 网
© 2015bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191