M480手册里SDH_INTEN寄存器说明:
以前新塘的芯片,SDIO的INTEN寄存器的第10位是SDHIEN,用来使能D1引脚的中断:
#define SDH_INTEN_SDHIEN0_Pos (10) /*!< SDH_T::INTEN: SDHIEN0 Position */
#define SDH_INTEN_SDHIEN0_Msk (0x1ul << SDH_INTEN_SDHIEN0_Pos) /*!< SDH_T::INTEN: SDHIEN0 Mask */
不过在M480的数据手册,和M480.h头文件里都没有定义SDHIEN。
加上后,实测D1中断正常:
if (intsts & SDH_INTSTS_SDHIF0_Msk)
{
if (sdio_param->d1_callback != NULL)
{
sdio_param->d1_callback(sdio_param->d1_param);
}
sdreg->INTEN &= ~SDH_INTEN_SDHIEN0_Msk;
sdreg->INTSTS = SDH_INTSTS_SDHIF0_Msk;
}
D1中断一般用于SDIO接口的wifi模块,测试示例在这里:
https://bbs.21ic.com/icview-2549072-1-1.html
|