本帖最后由 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 上传
点击文件名下载附件
我在楼主位下载的工程修改几个部分,测试通过
USB6.jpg (134.9 KB, 下载次数: 0)
下载附件
2016-8-9 15:30 上传
/*******************************************************************************
* Function Name : Leave_LowPowerMode.
* Description : Restores system clocks and power while exiting suspend mode.
* Input : None.
* Output : None.
* Return : None.
*******************************************************************************/
void Leave_LowPowerMode(void)
{
DEVICE_INFO *pInfo = &Device_Info;
/* Set the device state to the correct state */
if (pInfo->Current_Configuration != 0)
{
/* Device configured */
bDeviceState = CONFIGURED;
}
else
{
bDeviceState = ATTACHED;
}
/*Enable SystemCoreClock*/
SystemInit(); //之前这里我建议屏蔽,但屏蔽了不行,不知什么原因,我之前的一个产品也是由于这里导致一些问题,我的屏蔽就没问题,你可以研究一下
}
一周热门 更多>