中级会员
 
- 积分
- 211
- 金钱
- 211
- 注册时间
- 2015-12-6
- 在线时间
- 47 小时
|
5金钱
本帖最后由 我是520老谢 于 2016-9-29 14:40 编辑
将原子的usb读卡器的例程移植到自己的板子上面的时候,出现了一些问题
1、可以看得到设备,但是设备却是空的。
2、有两个设备,一个是SD卡的,一个是使用W25Q16_flash,但是两个设备都没有读出来。
3、有设备的名字,读取flash的代码是好的。
3_1、我觉得会不会是调用的函数出问题了,但是又没看出是哪里的问题。
int main(void)
{
u8 offline_cnt=0;
u8 tct=0;
u8 USB_STA;
u8 Divece_STA;
GP1_Init();
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
USART1_Config();
SPI_FLASH_Init(); //初始化W25Q
DeviceID = SPI_FLASH_ReadDeviceID();
delay_ms(200);
FlashID = SPI_FLASH_ReadID();
if (FlashID == sFLASH_ID)
{
SPI_FLASH_SectorErase(FLASH_SectorToErase);
SPI_FLASH_BufferWrite(Tx_Buffer, FLASH_WriteAddress, BufferSize);
SPI_FLASH_BufferRead(Rx_Buffer, FLASH_ReadAddress, BufferSize);
}
my_mem_init(SRAMIN); //初始化内部内存池
delay_ms(1800);
USB_Port_Set(0); //USB先断开
delay_ms(700);
USB_Port_Set(1); //USB再次连接
Data_Buffer=mymalloc(SRAMIN,BULK_MAX_PACKET_SIZE*2*4); //为USB数据缓存区申请内存
Bulk_Data_Buff=mymalloc(SRAMIN,BULK_MAX_PACKET_SIZE); //申请内存
//USB配置
Set_System();
USB_Interrupts_Config();
Set_USBClock();
USB_Init();
delay_ms(1800);
while (bDeviceState != CONFIGURED); //等待配置完成
... ...
配置完成是通过的。
试过了,flash的写入和读取都是正常的。
1、那么没有将储存器的容量读出来.
3、是不是flash没有连接到电脑,只是有显示移动设备而已。
4、USB与电脑连接是枚举,如何知道枚举是否成功,那么读出来的可移动设备是什么。
5、出现了可移动设备却没有数据,是不是USB与电脑连接上了,但是flash的数据无法通过USB上传到电脑。
void Read_Memory(uint8_t lun, uint32_t Memory_Offset, uint32_t Transfer_Length)
{
。。。
if (TransferState == TXFR_ONGOING )
{
if (!Block_Read_count)
{
STA=MAL_Read( /*lun*/0 ,
Offset ,
Data_Buffer,
Mass_Block_Size[lun]);
if(STA)USB_STATUS_REG|=0X08;//SD卡读错误!
USB_SIL_Write(EP1_IN, (uint8_t *)Data_Buffer, BULK_MAX_PACKET_SIZE);
Block_Read_count = Mass_Block_Size[lun] - BULK_MAX_PACKET_SIZE;
Block_offset = BULK_MAX_PACKET_SIZE;
}
。。。
在这里将flash的数据读出来,我看过了,数据是有的,
我觉得应该是数据没有正常通过USB发送到电脑。所以有移动磁盘,但是没有磁盘的内容。
|
|