第一个41命令使能正常送出的,但是到了mmcsd_sd_init_card里面发送完CMD0 CMD8之后发送ACMD41就卡住不会动了。
RCC配置为200MHz 晶振8MHz
RCC_PeriphCLKInitStruct.PLL2.PLL2M=1;
RCC_PeriphCLKInitStruct.PLL2.PLL2N=100;
RCC_PeriphCLKInitStruct.PLL2.PLL2P=5;//80MHz ADC
RCC_PeriphCLKInitStruct.PLL2.PLL2Q=8;//100MHz FDCAN UART
RCC_PeriphCLKInitStruct.PLL2.PLL2R=4;//200MHz SDMMC
RCC_PeriphCLKInitStruct.PLL3.PLL3M=1;
RCC_PeriphCLKInitStruct.PLL3.PLL3N=120;//960
RCC_PeriphCLKInitStruct.PLL3.PLL3P=10;//96MHz SPI
RCC_PeriphCLKInitStruct.PLL3.PLL3Q=16;//60MHz USB//usb不用这个
RCC_PeriphCLKInitStruct.PLL3.PLL3R=8;//120MHz IIC
RCC_PeriphCLKInitStruct.SdmmcClockSelection=RCC_SDMMCCLKSOURCE_PLL2;//250
gpio配置如下:
void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(hsd->Instance==SDMMC1)
{
/* USER CODE BEGIN SDMMC1_MspInit 0 */
/* USER CODE END SDMMC1_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_SDMMC1_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/**SDMMC1 GPIO Configuration
PC8 ------> SDMMC1_D0
PC9 ------> SDMMC1_D1
PC10 ------> SDMMC1_D2
PC11 ------> SDMMC1_D3
PC12 ------> SDMMC1_CK
PD2 ------> SDMMC1_CMD
*/
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_8
|GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF12_SDIO1;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF12_SDIO1;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
// /* SDMMC1 interrupt Init */
HAL_NVIC_SetPriority(SDMMC1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(SDMMC1_IRQn);
/* USER CODE BEGIN SDMMC1_MspInit 1 */
/* USER CODE END SDMMC1_MspInit 1 */
}
}
DMA印象中是没配置过,不知道要在哪儿看
会不会是优先级冲突,我加了usb的中断,都是最高优先级
———————————-第一次更新
回去尝试了一下其他卡,是一个金士顿的32G卡,插进去能识别了,就是我那张4g的不知道啥牌子卡识别不了。
acmd写入的ocr是0x4030_0000表示SDHC卡,然后电压是3.2-3.4
返回值是0x00FF_8000,电压范围变了,然后busy 容量标志位都没了?
这是啥情况