问答

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

elephant00

TA的家园币:9400  

  • GD32F105RCT6 flash容量问题

    本帖最后由fenghengx于2025-1-309:35编辑程序超过128K,下载出现这个错误,时哪里设置不对?Contentsmismatchat:08020000H(Flash=FFHRequired=93H)!

    flash gd32f105 rc Content 8K 错误

    2025-01-03 9
  • 国民技术N32G452的keil例程下载下来后,编译会报错?

    使用的keil版本5.41,芯片是N32G453CCL7。首先我推测是路径没包含好,我重新给工程文件包含了文件,但是还是编译报错;然后我修改芯片型号,N32G457QEL7这个是例程默认的芯片型号,改为我现在用的N32G453CCL7依然还是报这个错;有大佬遇到类似情况,例程下载下来不能用的么?

  • 凌鸥的单片机可以用ST-LINK仿真调试吗

    凌鸥的单片机可以用ST-LINK仿真调试吗

  • 国民技术官方DFU驱动在哪下载

    N32G43XRL_STB_V1.1把NS-LINK程序给刷掉了,查半天论坛说要连上DFU,用国民技术下载工具重新烧写一个,现在卡在DFU了,找半天只从论坛里找到一个驱动,安装提示没有数字签名,咱也不敢安,只能来论坛求助

    技术 link N32G4 2G N32G43x N32

    2024-11-14 6
  • 使用 DMA写flash后,读取数据出现错位现象

    使用DMA写flash后,读取数据出现错位现象,读到的buffer的第一节总为0,从第二字节开始才是正常数据。只能在24bit地址发送完后,再发一个DUMMY_BYTE(无效字节),才能bufferr接收数据。一但调“dma_channel_enable(DMA1,DMA_CH3)这个使能”后就出现上述现象。每次读取数据时都要先发一个DUMMY_BYTE才能正确接收。若上电不调“dma_channel_enable(DMA1,DMA_CH3)“接收都是正常的。使用的MCU是GD32F470VIT6,SPIFLAH是GD25Q40C.请各位大佬帮忙分析下。以下为SPI代码DMA配置voiddma_init(uint8_t*data_buffer,uint32_tdata_length){dma_single_data_parameter_structdma_init_struct;rcu_periph_clock_enable(RCU_DMA1);//DMA发送dma_deinit(DMA1,DMA_CH3);//DMA初始化参数设置dma_init_struct.direction=DMA_MEMORY_TO_PERIPH;dma_init_struct.memory0_addr=(uint32_t)data_buffer;dma_init_struct.memory_inc=DMA_MEMORY_INCREASE_ENABLE;dma_init_struct.periph_addr=(uint32_t)&SPI_DATA(SPI0);dma_init_struct.periph_inc=DMA_PERIPH_INCREASE_DISABLE;dma_init_struct.periph_memory_width=DMA_MEMORY_WIDTH_8BIT;dma_init_struct.number=data_length;dma_init_struct.circular_mode=DMA_CIRCULAR_MODE_DISABLE;dma_init_struct.priority=DMA_PRIORITY_MEDIUM;dma_single_data_mode_init(DMA1,DMA_CH3,&dma_init_struct);dma_channel_subperipheral_select(DMA1,DMA_CH3,DMA_SUBPERI3);//使能DMA中断通道nvic_irq_enable(DMA1_Channel3_IRQn,0,0);//配置DMA中断使能位//dma_circulation_disable(DMA1,DMA_CH3);dma_interrupt_enable(DMA1,DMA_CH3,DMA_CHXCTL_FTFIE);}DMA发送int8_tspi_dma_data_send(uint8_t*pbuffer,uint32_twrite_addr,uint16_tnum_byte_to_write){/*enablethewriteaccesstotheflash*/spi_flash_write_enable();/*selecttheflash:chipselectlow*/SPI_FLASH_CS_LOW();/*send"writetomemory"instructi

    DMA 读取SPI flash 异常 读取

    2024-11-07 15
  • 3.3V供电,能OC输出5V高电平吗?

    MCU3.3V供电,引脚上拉100K到5V控制PMOS管,实际输出高电平只有3.7V,PMOS管的GS电压有1.3V,无法关闭管子。只有通过分压尽可能减小GS的电压实现关断功能,单这样也会减小打开时的电压。OC输出高电平能到5V吗?

    MUC 5V 输出 供电 电平 电压

    2024-11-03 15
  • rtthread 驱动 hc32f4a0 开发板上tf卡的问题。。

    本帖最后由yqzq101于2024-10-1609:44编辑hello立创上请了一块谅山派的F4A0开发板。。发现rt-studio里面居然有这个开发板的支持试着创建了工程,闪了个灯一切OK想测试一下tf卡,按照网上搜的例子,打开了SDIOC1,加了fatfs,下载后,总提示如下:msh/>[E/drv.sdio]clockdivisionerror[E/drv.sdio]clockdivisionerror[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd0,arg:0x00000000[E/drv.sdio]clockdivisionerror[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd8,arg:0x000001AAclockdivisionerror[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd5,arg:0x00000000[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd55,arg:0x00000000[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd55,arg:0x00000000[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd55,arg:0x00000000[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd55,arg:0x00000000[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd1,arg:0x00000000[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd1,arg:0x00000000[E/drv.sdio][_sdio_wait_completedtimeout]sta=0x1FFE82A0,cmd1,arg:0x00000000请问这是为啥。。是我哪里没改好吗谢谢

    sdc HC32F4 开发板 rtthread TF IO

    2024-10-16 7
  • GD32f303rct6 RTC问题。

    我准备用兆易的GD32F103rct6,RTC时钟,它的时钟32.768晶振的选择是不是和STM32F103一样容易出现问题,不起振?在选择晶振时应注意什么?

  • 请问GD32 用Embedded 软件debug在线调试失败可能是什么原因?

    本帖最后由看云于2024-9-2709:57编辑D:\x.png

  • 使用stm32mp157进行软件模式spi通讯,无法设置为四线模式

    本帖最后由七呀嘛七于2024-9-1810:10编辑目前使用stm32mp157芯片进行软件模式的spi通讯,设备树内对使用的gpio口定义如下:gpio_spi1:spi@1{compatible="spi-gpio";#address-cells=;#size-cells=;status="okay";sck-gpios=;mosi-gpios=;miso-gpios=;cs-gpios=,;//drv:i0dac:e6num-chipselects=;/*Clients*/spidev@0{reg=;compatible="linux,spidev";spi-max-frequency=;};spidev@1{reg=;compatible="linux,spidev";spi-max-frequency=;};};在使用read或ioctl函数,通过miso线进行读取时,发现读取到的都是mosi线的数据,也就是运行在三线模式。尝试使用ioctl(fd,SPI_IOC_WR_MODE,&mode)关闭三线模式,但没有产生效果。程序中spi读取的相关代码如下:intmyspi2_write_then_read(intfd,constuint8_t*tx_buf,size_tlen_tx,uint8_t*rx_buf,size_tlen_rx){structspi_ioc_transfertransfer[2];//两个传输结构,一个用于写入,一个用于读取memset(transfer,0,sizeof(transfer));//清空结构体//第一个传输,用于写入transfer[0].tx_buf=(unsignedlong)tx_buf;//发送缓冲区transfer[0].rx_buf=0;//不接收数据transfer[0].len=len_tx;//写入数据长度transfer[0].speed_hz=0;//使用当前SPI设备的默认速度transfer[0].cs_change=0;//在结束时不改变片选状态//第二个传输,用于读取transfer[1].tx_buf=0;//不发送数据transfer[1].rx_buf=(unsignedlong)rx_buf;//接收缓冲区transfer[1].len=len_rx;//读取数据长度transfer[1].speed_hz=0;//使用当前SPI设备的默认速度transfer[1].cs_change=0;//完成读写后释放片选//使用ioctl进行双向传输(写入+读取)intret=ioctl(fd,SPI_IOC_MESSAGE(2),transfer);printf("Wrote%zubytesandread%zubytesfromSPI\n",len_tx,len_rx);return0;}intspi_read(intfd,intread_length){uint8_tbuf[read_length];ssize_tret=read(fd,buf,sizeof(buf));printf("ReadfromSPI:");for(inti=0;i<ret;i++){printf(

  • GD32E230作为IIC从机时接收数据会卡顿是什么原因

    在配置完成IIC从机模式后,主机向从机发送9位数据,在从机收到数据后主函数的代码会跑不到,不知道在什么地方造成了阻塞,接收完毕会产生多次的STPDEF中断吗,但是IIC从机模式的故障应该也不会影响到主函数的运行才对,有没有懂的大佬帮忙分析一下谢谢,代码如下#include"gd32e230.h"#defineMSG_RECV_BYTE_SUM9#defineMSG_SEND_BYTE_SUM6#defineI2C0_OWN_ADDRESS70x44voidiic_msg_gpio_config_init(void){/*enableGPIOBclock*/rcu_periph_clock_enable(RCU_GPIOB);/*enableI2C0clock*/rcu_periph_clock_enable(RCU_I2C0);/*connectPB6toI2C0_SCL*/gpio_af_set(GPIOB,GPIO_AF_1,GPIO_PIN_6);/*connectPB7toI2C0_SDA*/gpio_af_set(GPIOB,GPIO_AF_1,GPIO_PIN_7);/*configureGPIOpinsofI2C0*/gpio_mode_set(GPIOB,GPIO_MODE_AF,GPIO_PUPD_PULLUP,GPIO_PIN_6);gpio_output_options_set(GPIOB,GPIO_OTYPE_OD,GPIO_OSPEED_50MHZ,GPIO_PIN_6);gpio_mode_set(GPIOB,GPIO_MODE_AF,GPIO_PUPD_PULLUP,GPIO_PIN_7);gpio_output_options_set(GPIOB,GPIO_OTYPE_OD,GPIO_OSPEED_50MHZ,GPIO_PIN_7);/*I2Cclockconfigure*/i2c_clock_config(I2C0,400000,I2C_DTCY_2);/*I2Caddressconfigure*/i2c_mode_addr_config(I2C0,I2C_I2CMODE_ENABLE,I2C_ADDFORMAT_7BITS,I2C0_OWN_ADDRESS7);/*enableI2C0*/i2c_enable(I2C0);/*enableacknowledge*/i2c_ack_config(I2C0,I2C_ACK_ENABLE);nvic_irq_enable(I2C0_EV_IRQn,23);nvic_irq_enable(I2C0_ER_IRQn,32);/*enabletheI2C0interrupt*/i2c_interrupt_enable(I2C0,I2C_INT_ERR);i2c_interrupt_enable(I2C0,I2C_INT_EV);i2c_interrupt_enable(I2C0,I2C_INT_BUF);}voidi2c0_event_irq_handler(void){if(i2c_interrupt_flag_get(I2C0,I2C_INT_FLAG_ADDSEND)){//0:接收端//1:发送端tI2cSlave.uFlag.Bits.DirState=i2c_flag_get(I2C0,I2C_FLAG_TR);if(tI2cSlave.uFlag.Bits.DirState==RESET){msg_iic_recv

123下一页