中级会员
 
- 积分
- 239
- 金钱
- 239
- 注册时间
- 2013-12-30
- 在线时间
- 60 小时
|

楼主 |
发表于 2015-8-13 21:55:48
|
显示全部楼层
回复【4楼】正点原子:
---------------------------------
老大,我是每隔半个小时看看有没有您的回复啊。 电路是直接照搬开发板的,代码也是直接烧录“USB读卡器”的例程。结果就是不一样。
下午用IO口来控制上拉,依然无果
int main(void)
{
u8 offline_cnt=0;
u8 tct=0;
u8 USB_STA;
u8 Divece_STA;
usb_uPinit(); //上电先把上拉控制脚至高,D+失去上拉
usb_port_set(0); //USB先断开
delay_init(); //延时函数初始化
delay_ms(300);
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600
LED_Init(); //LED端口初始化
LCD_Init(); //初始化液晶
KEY_Init(); //按键初始化
  OINT_COLOR=RED;//设置字体为蓝色
LCD_ShowString(60,50,200,16,16,"WarShip STM32");
LCD_ShowString(60,70,200,16,16,"USB Card Reader TEST");
LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(60,110,200,16,16,"2012/9/25");
SPI_Flash_Init();
if(SD_Initialize())LCD_ShowString(60,130,200,16,16,"SD Card Error!"); //检测SD卡错误
else //SD 卡正常
{
LCD_ShowString(60,130,200,16,16,"SD Card Size: MB");
Mass_Memory_Size[0]=(long long)SD_GetSectorCount()*512;//得到SD卡容量(字节),当SD卡容量超过4G的时候,需要用到两个u32来表示
Mass_Block_Size[0] =512;//因为我们在Init里面设置了SD卡的操作字节为512个,所以这里一定是512个字节.
Mass_Block_Count[0]=Mass_Memory_Size[0]/Mass_Block_Size[0];
LCD_ShowNum(164,130,Mass_Memory_Size[0]>>20,5,16); //显示SD卡容量
}
if(SPI_FLASH_TYPE!=W25Q64)LCD_ShowString(60,130,200,16,16,"W25Q64 Error!"); //检测SD卡错误
else //SPI FLASH 正常
{
Mass_Memory_Size[1]=1024*1024*6;//前6M字节
Mass_Block_Size[1] =512;//因为我们在Init里面设置了SD卡的操作字节为512个,所以这里一定是512个字节.
Mass_Block_Count[1]=Mass_Memory_Size[1]/Mass_Block_Size[1];
LCD_ShowString(60,150,200,16,16,"SPI FLASH Size:6144KB");
}
//USB配置
USB_Interrupts_Config();
Set_USBClock();
USB_Init();
delay_ms(1800);
GPIO_ResetBits(GPIOC,GPIO_Pin_10);//上拉PNP管基极为低,D+开启上拉
usb_port_set(1); //USB再次连接
delay_ms(1800);
LCD_ShowString(60,170,200,16,16,"USB Connecting...");//提示SD卡已经准备了
while(1)
{
改完后,第一次运行,LCD一直反复的显示"USB Connected " 和"USB DisConnected " ,然后还出现了一下"USB Reading..." ,之后就一直显示"USB DisConnected " 。
无论再怎么重上电,重烧程序,都是"USB DisConnected "了
真是匪夷所思。。。。 |
|