问答

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

lylam18

TA的家园币:220  

  • 求助!!STM32F407VE DMA+FSMC+LCD,照片显示成4个小图

    之前一直玩103,最近画了块板子F407Ve的,翻出1个之前的LCD,想通过DMA将数组中的图片,搬到FSMC挂的屏由于对407不是很熟,代码大部分都是通过F407ZE的代码,东拼西凑,改来的最终图片是显示出来了,但是被均分成了4小份显示出来了,例如:一张图240*320,变成了4张60*80的小图(不好意思,我上传不了图)然后就是各种线路排出,代码排查。快两个周了,还没找到问题1.DMA将照片搬到u8、u16、u32数组,数据都没有问题(数据顺序),几乎可以排除DMA代码的问题2.如果将数组的数据,按照1个点1个点向LCD写,图片也没问题3.只有在通过DMA将数据通过FSMC搬到LCD时,结果就变成4张小图(有可能是数据错位,1分裂成4了)所以跟人怀疑是FSMC导致的,但是各种试解决不了这是LCD地址#defineTFTLCD_BASE((u32)(0x60000000|0x0001FFFE))//Bank1.sector1+A16#defineTFTLCD((TFTLCD_TypeDef*)TFTLCD_BASE)这是FSMC复用部分配置GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_FSMC);//PD0FSMC_D2GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_FSMC);//PD1FSMC_D3GPIO_PinAFConfig(GPIOD,GPIO_PinSource4,GPIO_AF_FSMC);//PD4FSMC_NOEGPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_FSMC);//PD5FSMC_NWEGPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_FSMC);//PD8FSMC_D13GPIO_PinAFConfig(GPIOD,GPIO_PinSource9,GPIO_AF_FSMC);//PD9FSMC_D14GPIO_PinAFConfig(GPIOD,GPIO_PinSource10,GPIO_AF_FSMC);//PD10FSMC_D15GPIO_PinAFConfig(GPIOD,GPIO_PinSource14,GPIO_AF_FSMC);//PD14FSMC_D0GPIO_PinAFConfig(GPIOD,GPIO_PinSource15,GPIO_AF_FSMC);//PD15FSMC_D1GPIO_PinAFConfig(GPIOE,GPIO_PinSource7,GPIO_AF_FSMC);//PE7FSMC_D4GPIO_PinAFConfig(GPIOE,GPIO_PinSource8,GPIO_AF_FSMC);//PE8FSMC_D5GPIO_PinAFConfig(GPIOE,GPIO_PinSource9,GPIO_AF_FSMC);//PE9FSMC_D6GPIO_PinAFConfig(GPIOE,GPIO_PinSource10,GPIO_AF_FSMC);//PE1