完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的程序使用了两个工程,一个为IAP,一个为APP,APP的起始地址为0x8008800,中断向量已经重新映射,该重映射的语句为:NVIC_SETvECTORtABLE(NVIC_VectTab_FLASH,0x8800),但此时USB便枚举不成功,此时其他中断是正常的;但若把APP起始地址改为0X8000000不使用IAP进行跳转则枚举没有问题.我比较怀疑中断向量这块的设置是不是还有问题,跪求高手帮忙看看. 我使用的MCU为STM32F103
|
|
相关推荐
1个回答
|
|
根据您提供的信息,我将尝试分析可能导致STM32F103 USB枚举不成功的原因。以下是一些可能的原因和解决方案:
1. 中断向量表位置错误:您提到使用了NVIC_SETVECTORTABLE(NVIC_VectTab_FLASH, 0x8800)来重新映射中断向量表。请确保这个地址是正确的,并且与您的APP程序的起始地址相匹配。 2. 中断向量表大小:请检查您的中断向量表是否足够大,以容纳所有必要的中断处理函数。如果中断向量表太小,可能会导致某些中断无法正确处理。 3. 中断优先级配置:请检查您的中断优先级配置是否正确。错误的优先级配置可能导致某些中断被覆盖或忽略。 4. USB中断处理函数:请确保您的USB中断处理函数已正确实现,并且能够正确处理USB枚举过程中的各种事件。 5. IAP跳转问题:您提到使用了IAP进行跳转,但跳转后USB枚举不成功。请检查IAP跳转过程中是否有任何问题,例如跳转地址错误或跳转后程序执行错误。 6. 时钟配置:请确保您的时钟配置正确,特别是与USB相关的时钟。错误的时钟配置可能导致USB设备无法正常工作。 7. USB初始化和配置:请检查您的USB初始化和配置过程是否正确。错误的初始化或配置可能导致USB设备无法被主机识别。 8. 固件问题:请检查您的固件是否有任何问题,例如内存泄漏、死锁或其他潜在问题。这些问题可能会影响USB枚举过程。 9. 硬件问题:虽然较不常见,但硬件问题(如损坏的USB引脚或不稳定的电源)也可能导致USB枚举失败。 为了解决这些问题,您可以尝试以下步骤: 1. 仔细检查中断向量表的位置、大小和优先级配置。 2. 确保USB中断处理函数正确实现,并能够处理所有相关事件。 3. 检查IAP跳转过程,确保跳转地址正确且程序执行无误。 4. 检查时钟配置,确保与USB相关的时钟正确设置。 5. 检查USB初始化和配置过程,确保正确执行。 6. 检查固件,排除内存泄漏、死锁等问题。 7. 如果可能,请检查硬件,排除损坏的USB引脚或不稳定的电源等问题。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便进一步分析。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
767 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
489 浏览 1 评论
329 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
271 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
648 浏览 2 评论
1406浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
61浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
112浏览 3评论
98浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
81浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-17 07:45 , Processed in 1.076339 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号