完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 xuxi131 于 2016-11-20 15:00 编辑 【NUCLEO-F412ZG试用体验】+ USB HID接口实验 (一) NUCLEO-F412ZG开发板: 这次有幸通过电子发烧友网拿到NUCLEO-F412ZG开发套件,下图左边就是144PIN的NUCLEO-F412ZG,右边是64PIN的NUCLEO-L476RG:
![]() 144PIN的NUCLEO-F412ZG PCB板大了不少,自然引出脚多,相对可使用内部设备增多,可以进行更多试验,比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页,选配项为下图
![]() ![]() ②选择ClockConfiguration页,选配项为下图
![]() ③选择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下载了。 |
|
相关推荐
|
|
使用stm32l451片子,对ad7606进行3通道100k采样值跳动问题?
942 浏览 1 评论
STM32进行DMA数据转运,为什么只有A组最后一位数据被转运到B组去?
1453 浏览 2 评论
1767 浏览 3 评论
1365 浏览 0 评论
嵌入式开发 Win11安装ST-Link 提示 设备描述符请求失败 怎么处理?
1502 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-22 19:18 , Processed in 0.621443 second(s), Total 71, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191