-
华大的keil工程模板HC32L19x_Template_Rev1.1.0无法编译
纯MCU新手请教,我下载了 华大的工程模板 HC32L19x_Template_Rev1.1.0,然后使用 Keil uVision V5.40 版本 的默认编译器 V6 编译时无法编译通过。 我想请问下,这个工程模板是不是基于 Arm V5 编译器的,所以才导致无法正确编译。 多谢了。
2031浏览量 6回复量 关注量 -
HC32F460 SPI通信问题
大家好,在使用HC32F460 的SPI时,碰到这个问题: 1 / HC32F460 可以正常发送数据, 外部的设备也正常回复数据,但是HC32F460 确收不到数据(读取DR寄存器得到的是刚才发送的数据) 2/ 已经使用示波器观测波形,确认发送是正常的(外部设备也只有在收到数据后才回复) 。示波器上的波形也显示外部设备返回了一个数据。 以下是代码 [b][color=#0000f0]//SPI的配置[/color][/b] void Spi_Config(void) { stc_spi_init_t stcSpiInit; /* configuration structure initialization */ MEM_ZERO_STRUCT(stcSpiInit); /* Configuration peripheral clock */ PWC_Fcg1PeriphClockCmd(SPI_UNIT_CLOCK, Enable); /* Configuration SPI pin */ 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); [color=#f00000]//CS 单独控制[/color] /* Configuration SPI structure */ stcSpiInit.enClkDiv = SpiClkDiv8; //SpiClkDiv32 SpiClkDiv64 stcSpiInit.enFrameNumber = SpiFrameNumber1; stcSpiInit.enDataLength = SpiDataLengthBit8;//SpiDataLengthBit32 SpiDataLengthBit16 SpiDataLengthBit8 stcSpiInit.enFirstBitPosition = SpiFirstBitPositionMSB; stcSpiInit.enSckPolarity = SpiSckIdleLevelLow; stcSpiInit.enSckPhase = SpiSckOddChangeEvenSample; // SpiSckOddSampleEvenChange old--SpiSckOddChangeEvenSample stcSpiInit.enReadBufferObject = SpiReadReceiverBuffer; //SpiReadSendBuffer old--SpiReadReceiverBuffer stcSpiInit.enWorkMode = SpiWorkMode3Line; stcSpiInit.enTransMode = SpiTransFullDuplex; stcSpiInit.enCommAutoSuspendEn = Disable; //Disable stcSpiInit.enModeFaultErrorDetectEn = Disable; stcSpiInit.enParitySelfDetectEn = Disable; stcSpiInit.enParityEn = Disable; stcSpiInit.enParity = SpiParityEven; stcSpiInit.enMasterSlaveMode = SpiModeMaster; stcSpiInit.stcDelayConfig.enSsSetupDelayOption = SpiSsSetupDelayTypicalSck1; stcSpiInit.stcDelayConfig.enSsSetupDelayTime = SpiSsSetupDelaySck1; stcSpiInit.stcDelayConfig.enSsHoldDelayOption = SpiSsHoldDelayCustomValue; stcSpiInit.stcDelayConfig.enSsHoldDelayTime = SpiSsHoldDelaySck1; stcSpiInit.stcDelayConfig.enSsIntervalTimeOption = SpiSsIntervalCustomValue; stcSpiInit.stcDelayConfig.enSsIntervalTime = SpiSsIntervalSck6PlusPck2; SPI_Init(SPI_UNIT, &stcSpiInit); SPI_Cmd(SPI_UNIT, Enable); } [color=#0000f0][b]//SPI读取函数[/b][/color] UINT8 SPI_Read( void ) /* 从CH376读数据 */ { UINT16 spi_u8Tmp=0; SPI_CS_OnOff(1); SPI_CS_OnOff(0); [color=#f00000]//使能CS端口[/color] Ddl_Delay1us(100); SPI_SendData8(SPI_UNIT, 0x55); /* Wait rx buffer full */ while (Reset == SPI_GetFlag(SPI_UNIT, SpiFlagReceiveBufferFull)) { } spi_u8Tmp=SPI_ReceiveData16(SPI_UNIT); [color=#f00000]//此处得到的数据,是0x55,也就是跟发送的一样,外部设备返回的是0xAA(示波器上也是显示0xAA)[/color] Ddl_Delay1us(10); Ddl_Delay1us(1000); SPI_CS_OnOff(1); printf("spi_u8Tmp==%hx",spi_u8Tmp); return (UINT8)spi_u8Tmp; } 谢谢
3315浏览量 5回复量 关注量 -
请问华大MCUF460JETA怎么设置DMA为软件触发
[table=98%,rgb(255, 255, 255)] [tr][td] 请问 现在只能通过串口发送,用发送完成中断触发DMA发送,请问怎么用软件触发DMA 发送 跟32一样 使能通道 重置发送数。 还有请问 stcIrqRegiCfg.enIRQn是代表中断优先级么 这个是代表什么 stcIrqRegiCfg.enIntSrc 我看到最后都是说中断的枚举号,请大佬指点一下 [td] [td][/td][td][td] /* Enable the specified DMA channel. */ [/td]DMA_ChannelCmd(USART_DMA_UNIT, TX_DMA_CH, Disable);[/td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td][td][/td] [td] DMA_ClearIrqFlag(USART_DMA_UNIT, TX_DMA_CH, TrnCpltIrq); [td] /* Enable peripheral circuit trigger function. */ PWC_Fcg0PeriphClockCmd(PWC_FCG0_PERIPH_PTDIS,Enable); /* Set DMA trigger source. */这里是设置触发源的地方,不知道怎么设置为软件触发 DMA_SetTriggerSrc(USART_DMA_UNIT, TX_DMA_CH, TX_DMA_TRG_SEL); [/td][td] [/td][/td] /* Set DMA block transfer complete IRQ */ stcIrqRegiCfg.enIRQn = TX_DMA_BTC_INT_IRQn; stcIrqRegiCfg.pfnCallback = &Dma_TX_IrqCallback; stcIrqRegiCfg.enIntSrc = TX_DMA_BTC_INT_NUM; enIrqRegistration(&stcIrqRegiCfg);[/td][/tr] [/table]
2964浏览量 1回复量 关注量 -
华大MCU debug 正常,复位后异常 sos
为什么华大的MCU HC32F005 ,在debug状态下程序运行正常,MCU复位后程序工作就异常了,哪位大神遇到过这个问题?
822浏览量 0回复量 关注量