问答

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

ylmting

TA的家园币:42  

  • 使用flash读写float类型数据时,遇到的问题

    读写flash,将float类型的数据存放在flash中,使用的是联合体操作unionvar{floatzero_angle;uint32_ts;};#defineFMC_WRITE_START_ADDR((uint32_t)0x08004000U)voidwrite_page(uint32_tdata){fmc_unlock();fmc_page_erase(FMC_WRITE_START_ADDR);fmc_word_program(FMC_WRITE_START_ADDR,data);fmc_lock();}//获取float类型的数据flo_flash.zero_angle=AS5600_ReadAngle(0x0c,0x0d);//将数据写入flashwrite_page(flo_flash.s);//读取数据flo_flash.s=(*(volatileuint32_t*)(uint32_t)(FMC_WRITE_START_ADDR));以上操作,在没有进行下一步的时候都没问题。使用printf函数重定向打印浮点型数据就会将flash的数据给影响到,里面的数据就会变成一个不确定的数值,且非常小。printf("%f\n",a);但是printf其他类型的数据,就不会受到影响。

    2023-01-16 9
  • GD32F130的串口+DMA发送

    按照手册来配置的,但是传输不了数据,不知道啥问题,劳请大家看看#defineARRAYNUM(arr_name)(uint32_t)(sizeof(arr_name)/sizeof(*(arr_name)))uint8_ttxbuffer[]="\n\rUSARTDMAreceiveandtransmitexample,pleaseinput10bytes:\n\r";#defineUSART1_DATA_ADDRESSUSART_TDATA(USART1)//0x40004400-0x400047FFvoidRCU_config(void){rcu_periph_clock_enable(RCU_GPIOA);//使能GPIOA时钟rcu_usart_clock_config(CK_APB2);//选择USART0外设的时钟源rcu_periph_clock_enable(RCU_USART1);//使能USART0外设时钟}voidNVIC_config(void){nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0);//没有使用USART1的中断}voidGPIO_config(void){gpio_af_set(GPIOA,GPIO_AF_1,GPIO_PIN_2);gpio_mode_set(GPIOA,GPIO_MODE_AF,GPIO_PUPD_PULLUP,GPIO_PIN_2);gpio_output_options_set(GPIOA,GPIO_OTYPE_PP,GPIO_OSPEED_10MHZ,GPIO_PIN_2);gpio_af_set(GPIOA,GPIO_AF_1,GPIO_PIN_10);gpio_mode_set(GPIOA,GPIO_MODE_AF,GPIO_PUPD_PULLUP,GPIO_PIN_10);}voidUSART1_config(void){usart_deinit(USART1);//复位USART0usart_baudrate_set(USART1,115200);//设置波特率usart_enable(USART1);//使能USART(UEN=1)usart_transmit_config(USART1,USART_TRANSMIT_ENABLE);//使能发送器(TEN=1)usart_receive_config(USART1,USART_RECEIVE_ENABLE);//使能接收器(REN=1)usart_dma_transmit_config(USART1,USART_DENT_ENABLE);}voiduart1_dma_txinit(void){dma_parameter_structdma_init_struct;/*enableDMA1*/rcu_periph_clock_enable(RCU_DMA);//dma_struct_para_init(&dma_init_struct);dma_deinit(DMA_CH3);dma_init_struct.direction=DMA_MEMORY_TO_PERIPHERAL;//设置方向dma_init_struct.memory_addr=NULL;dma_init_struct.memory_inc=DMA_MEMORY_INCREASE_ENABLE;dma_init_struct.memory_width=DMA_MEMORY_WIDTH_8BIT;dma_init_struct.number=0;dma_

    GD32 国产芯片

    2023-01-10 0