本帖最后由 mzm55185 于 2022-5-21 15:18 编辑
error_status emac_layer2_configuration(void)
{
emac_dma_config_type dma_control_para;
crm_periph_clock_enable(CRM_SCFG_PERIPH_CLOCK, TRUE);
scfg_emac_interface_set(SCFG_EMAC_SELECT_RMII);
crm_clock_out1_set(CRM_CLKOUT1_PLL);
crm_clkout_div_set(CRM_CLKOUT_INDEX_1, CRM_CLKOUT_DIV1_5, CRM_CLKOUT_DIV2_2);
/* reset phy */
reset_phy();
/* reset emac ahb bus */
emac_reset();
/* software reset emac dma */
emac_dma_software_reset_set();
while(emac_dma_software_reset_get() == SET);
运行到这里就一直卡在 EMAC_DMA->bm_bit.swr = SET;
是直接使用例程来做的
脚位也做了修改。时钟是250M
emac_system_init没有做修改。
error_status emac_system_init(void)
{
error_status status;
emac_nvic_configuration();
/* emac periph clock enable */
crm_periph_clock_enable(CRM_EMAC_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_EMACTX_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_EMACRX_PERIPH_CLOCK, TRUE);
emac_pins_configuration();
status = emac_layer2_configuration();
emac_tmr_init();
return status;
}
reset_phy里的内容我注掉了,因为这颗ic是跟着437一起复位,没有给复位引脚
|