-
GD32F103VET6替换同型号STM32,并口写入数据有问题
如题,原先使用STM32VET6使用FSMC接口写入/读写外部的SRAM芯片,正常,使用8位数据位读写(外部SRAM芯片仅支持8位数据位),地址总线和数据总线复用。地址线使用到a0-a11;都是使用的是STM32的HAL库。STM32写入时,先写入地址,在写入数据,但在写入数据期间,因为是复用的,AD0-AD7由地址数值切换为数据数值,而AD8-AD11仍保持高地址数值;数据可以正常写入到外部的SRAM芯片中;但是替换为GD32后,写入数据时,在写入数据期间,AD8-AD11会直接输出低电平,就会导致数据不会写入到AD8-AD11为一的地址上;(写入地址的时候,AD8-AD11会输出对应的高低电平,但是到写入具体数据时,AD8-AD11会直接输出低电平)举一个例子,例如我向0x60000303写入数据0x11;STM32可以在0x60000303写入数据0x11;而GD32由于上面说的在写入数据的时候,AD8-AD11总是输出0,所以就会向0x60000003的地址上写入了0x11,无法正常向0x60000100-0x600007FF写入数据。GD32可以正常向低地址上写入数据,读数据均正常(低地址/高地址均可读出正确数据);目前的问题就是GD32无法在写入具体数据的周期中,无法保证AD8-AD11的状态导致的问题。请问是否有办法通过修改gd32的寄存器的方式或者设置,直接实现正常向高地址写入数据。
2026-03-23 2

问答