本帖最后由 SkyGz 于 2016-8-9 15:56 编辑
一个原基于USB HID的通讯程序, 平时是插电脑上用的
所以就加了个Bootloader, 可以方便通过USB更新程序
能正常启动到Bootloader下, 也能更新程序, 通过JLINK 读整芯片数据回来 一一对比检查, 也没有错
可是 设为APP启动, 就无法识别 USB HID了, 问这是什么问题呢
HID程序 改了起始地址 就不能运行了??????????????
首先我这这USB HID是 NRF24L01的接收器, 上面有一个LED, 有通讯 就快闪, 没通讯就慢闪
经过测试, 能与另一块板子NRF24L01通信, LED能快闪, 说明已跳到APP程序中运行, 程序也没有卡死现像
已设置向量表偏移了(见图2代码中首行),,,就是唯独USB HID无法识别了.......
如果 丢个 点亮LED的测试程序 是没有问题的
Bootloader 跳到用户APP区的代码
#define IN_FLASH_STAR 0x08006000
33.JPG (15.7 KB, 下载次数: 0)
下载附件
2016-8-8 19:53 上传
上2个程序的代码, 各位大大有时间 帮我看看咋回事
zzzzzz.rar
(965.85 KB, 下载次数: 83)
2016-8-9 09:39 上传
点击文件名下载附件
可以了.............再次感谢... 还有 感谢 以上所有 解答的坛友...
总结
BOOT我没有动, 还是原来的...
原因如下
1. 没有开中断 __enable_irq(), 之前一直在想着是否漏了哪里 还没有关掉 导致的... 却忽略了中断是否打开.
2. 向量表 在system_stm32f10x.c里改 #define VECT_TAB_OFFSET 0x7000. 才成功.
在程序开始处使用NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x7000); 以及 Leave_LowPowerMode注释SystemInit 都无效.....
3. D+上位电阻可直接3.3V, 无需IO控制.
一周热门 更多>