OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3510|回复: 1

求助!USB鼠标(Host)实验移植到F411RE上状态机卡住?

[复制链接]

2

主题

7

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2019-8-19
在线时间
13 小时
发表于 2019-8-19 19:30:45 | 显示全部楼层 |阅读模式
1金钱
开发板:NUCLEO-F411RE环境:MDK5+STM32CubeMX
连接如下图
f411.png

底下有问题总结。

【状况描述】:

移植的是原子 探索者的USB资料中 STM32_USB-Host-Device_Lib_V2.1.0 库
我先移植了 标准库的例程,用了原子的标准库模板,能够成功读出来鼠标的数据
成功读出.png
随后我用Cube新建了一个工程,同样移植,只是在 usb_bsp.c 和main.c 中使用了HAL库进行了 初始化\使能 等操作,此过程我也参考了原子哥这个实验的HAL版例程
但是,卡在了状态机里,如下图:
卡在状态机.png

【问题总结】:
1、状态机为什么卡在这里,我单步调试的时候,看到状态改变的代码执行了(难道没有执行?我看到运行的那条东西从上面走过,不是跳过),但是在我添加的变量监视里,状态变量值 phost->gState 却没有改变!??
2、USB Host鼠标移植的时候,除了bsp.c \ usr.c \ 还有原子哥教程中修改添加的一些官方例程报错的地方,其他的地方有没有 我遗漏的?
3、为什么在我单步调试的时候,总感觉执行的步骤 跟 我想的逻辑不一样,它总会跳到我认为不是下一步的地方,我了解到keil会对其进行优化,但是我在keil中只看到-O1~-O3优化,default为 -O2优化,如何不优化?是否是因为优化导致我觉得它在调试的时候“乱跳”?更离谱的是有一些if语句,明明条件不对(变量监视的地方查看到判断不成立)单步调试的时候,却进入了!??这些问题给我调试的时候造成了许多困难啊,是否有前辈遇到过这样的情况,问题是如何产生的,又是如何解决的呢?

感谢大家!我还在不停的摸索,希望得到大家的帮助,每次原子哥的板子玩的很6,一到移植到别的板子的时候一言难尽,大家能否给我一点思路,为什么会有这样的问题,可能哪里出了错?

工程在这里,其实应该和原子哥的例程差不多,我把Drivers中的CMSIS和HAL库去掉了
Test_HAL_Mouse.zip (11.58 MB, 下载次数: 1)

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-8-20 02:23:42 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 03:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表