3231|2

1221

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

求助stm32 ch376t的U盘程序 [复制链接]

本帖最后由 wanghlady 于 2014-12-25 16:08 编辑

SPI1—SR发送接收始终为空,也就是0x02。
INT#始终为高,mcu和376连接不上,也检测不到U盘

这是初始化,用的B口的345复用,345分别为sck,miso,mosi。stm的片子是主机,所以NSS随便选了PC11。
void SPIx_Init(void)
{         
        RCC->APB2ENR|=1<<3;       //PORTBê±Öóê1Äü         
        RCC->APB2ENR|=1<<12;      //SPI1ê±Öóê1Äü            
        GPIOB->CRL&=0X00FFF000;
        GPIOB->CRL|=0X00BBB000;//PB3.4.5¸′óà  

   RCC->APB2ENR|=1<<4;  //PORTC ê±Öóê1Äü  
   GPIOC->CRH&=0XFF000FFF;//PC4.5   
   GPIOC->CRH|=0X00383000;//PC4--INT  .5--RST íÆíìêä3ö  
   GPIOC->ODR|=1<<13;//PC5êä3öÎa¸ß
         GPIOC->ODR|=1<<11;//PC5êä3öÎa¸ß
   GPIOC->IDR|=1<<12;//PC4éÏà-êäèë
////////////////////////////////////////////////////////////////////////////////////         
        SPI1->CR1|=0<<10;//è«Ë«1¤Ä£ê½        
        SPI1->CR1|=1<<9; //ÆôóÃèí¼tnss1üàí
        SPI1->CR1|=1<<8; //SSM룬NSSμçƽÎa¸ß£¬

        SPI1->CR1|=1<<2; //SPIÖ÷»ú
        SPI1->CR1|=0<<11;//8bitêy¾Y¸ñê½        
        SPI1->CR1|=1<<1; //¿ÕÏDÄ£ê½ÏÂSCKÎa1 CPOL=1
        SPI1->CR1|=1<<0; //êy¾Y2éÑù′óμú¶t¸öê±¼ä±ßÑØ¿aê¼,CPHA=1  
        SPI1->CR1|=7<<3; //Fsck=Fcpu/256
        SPI1->CR1|=0<<7; //MSBfirst   
        SPI1->CR1|=1<<6; //SPE=1  é豸ê1Äü            
}  
下面是ch376的初始化
uint8_t        mInitCH376Host( void )
{
        uint8_t        res;        
        mDelaymS(200);
        mDelaymS(200);
        mDelaymS(200);

        CH376_PORT_INIT( );           /* ½ó¿úó2¼t3õê¼»ˉ */
        xWriteCH376Cmd( CMD11_CHECK_EXIST );    /* 2aêÔμ¥Ƭ»úóëCH376Ö®¼äμÄí¨Ñ¶½ó¿ú */
        xWriteCH376Data( 0x55 );
        res = xReadCH376Data( );
//        printf("res =%02x \n",(unsigned short)res);
        xEndCH376Cmd( );
        if ( res != 0xAA ) return( ERR_USB_UNKNOWN );  /* í¨Ñ¶½ó¿ú2»Õy3£,¿éÄüÔ-òòóD:½ó¿úᬽóòì3£,ÆäËüé豸ó°Ïì(Ƭѡ2»Î¨ò»),′®¿ú2¨ìØÂê,ò»Ö±Ôú¸′λ,¾§Õñ2»1¤×÷ */
        xWriteCH376Cmd( CMD11_SET_USB_MODE ); /* é豸USB1¤×÷Ä£ê½ */
        xWriteCH376Data( 0x06 ); //06H=òÑÆôóÃμÄÖ÷»ú·½ê½2¢Çò×Ô¶ˉ2úéúSOF°ü  ???
        mDelayuS( 20 );
        res = xReadCH376Data( );

        xEndCH376Cmd( );

        if ( res == CMD_RET_SUCCESS )  //RES=51  Ãüáî2ù×÷3é1|
        {
            return( USB_INT_SUCCESS ); //USBêÂÎñ»òÕß′«êä2ù×÷3é1|
        }
        else
        {
            return( ERR_USB_UNKNOWN );/* éèÖÃÄ£ê½′íÎó */
        }
}

谢谢

此帖出自stm32/stm8论坛

最新回复

先保证SPI程序正常,在调试CH376...  详情 回复 发表于 2014-12-26 09:55
点赞 关注
 

回复
举报

1221

帖子

1

TA的资源

一粒金砂(高级)

沙发
 
需要中断程序吗
此帖出自stm32/stm8论坛
 
个人签名我爱着爱着我的人,朋友和家人。
 

回复

4996

帖子

19

TA的资源

裸片初长成(初级)

板凳
 
先保证SPI程序正常,在调试CH376...
此帖出自stm32/stm8论坛
 
个人签名我的博客
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表