一个人创造世界 2021-07-26 23:53 采纳率: 50%
浏览 69
已结题

关于#stm32# sdio标准库初始化过程中clk不能产生时钟,cmd不能正常发送


void gpio_sdio_init()
{
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);
    
    GPIOD->MODER|=(1<<5);
    GPIOD->OSPEEDR|=(3<<4);
    GPIOD->PUPDR|=(1<<4);
    GPIOD->AFR[0]|=(0XC<<8);
    
    GPIOC->MODER|=(0xa<<16);
    GPIOC->MODER|=(0xa<<20);
    GPIOC->MODER|=(1<<25);
    GPIOC->MODER|=(1<<21);
    GPIOC->OSPEEDR|=(0XFF<<16);
    GPIOC->OSPEEDR|=(3<<24);
    GPIOC->PUPDR|=(0X55<<16);
    GPIOC->AFR[1]|=(0Xccccc);
}
void sdio_init()
{
    SDIO_InitTypeDef *hsdio;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SDIO,ENABLE);
    gpio_sdio_init();
    /*最少要等待3个sdio——clk时钟周期以及两个apb2时钟周期,才可操作clkcr寄存器*/
    //SDIO->CLKCR|=0xd0;//DIVIDE 210    
    //SDIO->CLKCR|=(1<<9);
    //SDIO->POWER|=3;
//    SDIO->CLKCR|=(1<<8);//ENABLE
    
    hsdio->SDIO_BusWide=SDIO_BusWide_1b;
    hsdio->SDIO_ClockBypass=SDIO_ClockBypass_Disable;
    hsdio->SDIO_ClockDiv=210;
    hsdio->SDIO_ClockPowerSave=SDIO_ClockPowerSave_Disable;
    hsdio->SDIO_HardwareFlowControl=SDIO_HardwareFlowControl_Disable;
    hsdio->SDIO_ClockEdge=SDIO_ClockEdge_Rising;
    SDIO_Init(hsdio);
        SDIO_SetPowerState(SDIO_PowerState_ON);
    SDIO_ClockCmd(ENABLE);

}
int main()
{
    uint8_t a;
    SDIO_CmdInitTypeDef HSDIO;
    HSDIO.SDIO_Argument=0X0;
    HSDIO.SDIO_CmdIndex=0;
    HSDIO.SDIO_Response=SDIO_Response_No;
    HSDIO.SDIO_Wait=SDIO_Wait_No;
    HSDIO.SDIO_CPSM=SDIO_CPSM_Enable;
    usart_init();
    sdio_init();
    SDIO_SendCommand(&HSDIO);
    while(!(SDIO->STA >>7 &0X01));
    
    a=SDIO_GetCommandResponse();
    
    HSDIO.SDIO_Argument = 0X1AA;
  HSDIO.SDIO_CmdIndex = 8;
  HSDIO.SDIO_Response = SDIO_Response_Short;
  HSDIO.SDIO_Wait = SDIO_Wait_No;
  HSDIO.SDIO_CPSM = SDIO_CPSM_Enable;
  SDIO_SendCommand(&HSDIO);
    while(!(SDIO->STA >>7 &0X01));
    a=SDIO_GetCommandResponse();
    USART1->DR |=a;
    while(1)
    {
        //USART1->DR |=(0X02& (uint16_t)0x01FF);
        
    }
}
  • 写回答

1条回答 默认 最新

  • 一个人创造世界 2021-07-27 01:03
    关注

    时钟配置错了,

    评论

报告相同问题?

问题事件

  • 系统已结题 8月3日
  • 创建了问题 7月26日

悬赏问题

  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上
  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
  • ¥15 netcore使用PuppeteerSharp截图
  • ¥20 这张图页头,页脚具体代码该怎么写?
  • ¥15 关于#sql#的问题,请各位专家解答!
  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂