问答

汇集网友智慧,解决技术难题

HelloOK123

TA的家园币:254  

  • HC32F460 KEUA 和JETA的ADC问题

    大家好,之前购买了几块HC32F460的开发板。其中也包括JETA型号的。最近有个KEUA的型号需要调试,调试ADC时,发现数据不更新(同样的程序在JETA等开发板上都正常)。//----以下是ADC的配置-----------//ADC初始化voidAdcConfig(void){AdcClockConfig();AdcInitConfig();AdcChannelConfig();}//ADC时钟直接使用ClkPeriSrcPclkstaticvoidAdcClockConfig(void){/*Setbusclockdivision,dependsonthesystemclockfrequency.*///m_stcSysclkCfg.enPclk2Div=ClkSysclkDiv64;//m_stcSysclkCfg.enPclk4Div=ClkSysclkDiv16;//CLK_SysClkConfig(&m_stcSysclkCfg);CLK_SetPeriClkSource(ClkPeriSrcPclk);}voidAdcInitConfig(void){stc_adc_init_tstcAdcInit;MEM_ZERO_STRUCT(stcAdcInit);stcAdcInit.enResolution=AdcResolution_12Bit;stcAdcInit.enDataAlign=AdcDataAlign_Right;stcAdcInit.enAutoClear=AdcClren_Disable;stcAdcInit.enScanMode=AdcMode_SAOnce;;//单次采样/*1.EnableADC1.*/PWC_Fcg3PeriphClockCmd(PWC_FCG3_PERIPH_ADC1,Enable);/*2.InitializeADC1.*/ADC_Init(M4_ADC1,&stcAdcInit);}#defineADC1_SA_CHANNEL_COUNT(3u)voidAdcChannelConfig(void){stc_adc_ch_cfg_tstcChCfg;uint8_tau8Adc1SaSampTime[ADC1_SA_CHANNEL_COUNT]={0x60,0x80,0x80};MEM_ZERO_STRUCT(stcChCfg);stcChCfg.u32Channel=(ADC1_CH0|ADC1_CH1|ADC1_CH2);stcChCfg.u8Sequence=ADC_SEQ_A;stcChCfg.pu8SampTime=au8Adc1SaSampTime;/*1.SettheADCpintoanalogmode.*/AdcSetChannelPinMode(M4_ADC1,(ADC1_CH0|ADC1_CH1|ADC1_CH2),Pin_Mode_Ana);/*2.AddADCchannel.*/ADC_AddAdcChannel(M4_ADC1,&stcChCfg);}//---以下是测试的main程序----int32_tmain(void){UseXTAL();//使用外部16M晶振//ADC初始化AdcConfig();ADC_StartConvert(M4_ADC1);//ADC软起动while(1){Ddl_Delay1ms(1000);ADC_GetAllData(M4_ADC1,m_au16Adc1Value,ADC1_CH_COUNT);//读取ADC

    hc32f460 KEUA ADC

    2021-12-14 7
  • HC32F460 SPI通信问题

    大家好,在使用HC32F460的SPI时,碰到这个问题:1/HC32F460可以正常发送数据,外部的设备也正常回复数据,但是HC32F460确收不到数据(读取DR寄存器得到的是刚才发送的数据)2/已经使用示波器观测波形,确认发送是正常的(外部设备也只有在收到数据后才回复)。示波器上的波形也显示外部设备返回了一个数据。以下是代码//SPI的配置voidSpi_Config(void){stc_spi_init_tstcSpiInit;/*configurationstructureinitialization*/MEM_ZERO_STRUCT(stcSpiInit);/*Configurationperipheralclock*/PWC_Fcg1PeriphClockCmd(SPI_UNIT_CLOCK,Enable);/*ConfigurationSPIpin*/PORT_SetFunc(SPI_SCK_PORT,SPI_SCK_PIN,SPI_SCK_FUNC,Disable);PORT_SetFunc(SPI_MOSI_PORT,SPI_MOSI_PIN,SPI_MOSI_FUNC,Disable);PORT_SetFunc(SPI_MISO_PORT,SPI_MISO_PIN,SPI_MISO_FUNC,Disable);//PORT_SetFunc(SPI_CS_PORT,SPI_CS_PIN,SPI_NSS_FUNC,Disable);//CS单独控制/*ConfigurationSPIstructure*/stcSpiInit.enClkDiv=SpiClkDiv8;//SpiClkDiv32SpiClkDiv64stcSpiInit.enFrameNumber=SpiFrameNumber1;stcSpiInit.enDataLength=SpiDataLengthBit8;//SpiDataLengthBit32SpiDataLengthBit16SpiDataLengthBit8stcSpiInit.enFirstBitPosition=SpiFirstBitPositionMSB;stcSpiInit.enSckPolarity=SpiSckIdleLevelLow;stcSpiInit.enSckPhase=SpiSckOddChangeEvenSample;//SpiSckOddSampleEvenChangeold--SpiSckOddChangeEvenSamplestcSpiInit.enReadBufferObject=SpiReadReceiverBuffer;//SpiReadSendBufferold--SpiReadReceiverBufferstcSpiInit.enWorkMode=SpiWorkMode3Line;stcSpiInit.enTransMode=SpiTransFullDuplex;stcSpiInit.enCommAutoSuspendEn=Disable;//DisablestcSpiInit.enModeFaultErrorDetectEn=Disable;stcSpiInit.enParitySelfDetectEn=Disable;stcSpiInit.enParityEn=Disable;stcSpiInit.enParity=SpiParityEven;stcSpiInit.enMasterSlav