OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3760|回复: 4

STM32F103VCT6求助FSMC初始化

[复制链接]

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2016-2-15
在线时间
42 小时
发表于 2018-11-21 21:16:01 | 显示全部楼层 |阅读模式
50金钱
   因为以前用的MINI32板子,发现显示图片很慢,所以自己搞了一块用VCT6的板子。看下SDIO和FSMC是不是快点。结果现在不显示了,屏还是原来那个,确定是好的。
原理图如下:
初始化程序是这样的。
程序是这样的:
RCC->AHBENR|=1<<8;                      //ê1&#196;üFSMCê±&#214;ó          
        RCC->APB2ENR|=1<<5;             //ê1&#196;üPORTDê±&#214;ó
        RCC->APB2ENR|=1<<6;             //ê1&#196;üPORTEê±&#214;ó
        RCC->APB2ENR|=1<<4;              //ê1&#196;üPORTCê±&#214;ó         
        GPIOC->CRH&=0XFF0FFFFF;                //PC13 RST
        GPIOC->CRH|=0X00300000;          
        //PORTD&#184;′ó&#195;í&#198;íìê&#228;3&#246;                         0.1.4.5.7.8.9.10.11.14.15
        GPIOD->CRH&=0X00FF0000;
        GPIOD->CRH|=0XBB00BBBB;
        GPIOD->CRL&=0X0F00FF00;
        GPIOD->CRL|=0XB0BB00BB;            
        //PORTE&#184;′ó&#195;í&#198;íìê&#228;3&#246;                         7.8.9.10.11.12.13.14.15
        GPIOE->CRH&=0X00000000;
        GPIOE->CRH|=0XBBBBBBBB;
        GPIOE->CRL&=0X0FFFFFFF;
        GPIOE->CRL|=0XB0000000;                                                                                                                  
        rest=1;
        delay_ms(5);        
        rest=0;
        delay_ms(100);                                         // delay 50 ms
        rest=1;
        delay_ms(100);
        //&#188;&#196;′&#230;&#198;÷&#199;&#229;á&#227;
        //bank1óDNE1~4,&#195;&#191;ò&#187;&#184;&#246;óDò&#187;&#184;&#246;BCR+TCR£&#172;&#203;ùò&#212;×ü12°&#203;&#184;&#246;&#188;&#196;′&#230;&#198;÷&#161;£
        //&#213;aà&#239;&#206;ò&#195;&#199;ê1ó&#195;NE1 £&#172;ò2&#190;í&#182;&#212;ó|BTCR[0],[1]&#161;£                                    
        FSMC_Bank1->BTCR[0]=0X00000000;
        FSMC_Bank1->BTCR[1]=0X00000000;
        FSMC_Bank1E->BWTR[0]=0X00000000;
        //2ù×÷BCR&#188;&#196;′&#230;&#198;÷        ê1ó&#195;òì2&#189;&#196;£ê&#189;
        FSMC_Bank1->BTCR[0]|=1<<12;                //′&#230;′¢&#198;÷D′ê1&#196;ü
        FSMC_Bank1->BTCR[0]|=1<<14;                //&#182;áD′ê1ó&#195;2&#187;í&#172;μ&#196;ê±Dò
        FSMC_Bank1->BTCR[0]|=1<<4;                 //′&#230;′¢&#198;÷êy&#190;Y&#191;í&#182;è&#206;a16bit             
        //2ù×÷BTR&#188;&#196;′&#230;&#198;÷       
        //&#182;áê±Dò&#191;&#216;&#214;&#198;&#188;&#196;′&#230;&#198;÷                                                             
        FSMC_Bank1->BTCR[1]|=0<<28;                //&#196;£ê&#189;A                                                                             
        FSMC_Bank1->BTCR[1]|=1<<0;                 //μ&#216;&#214;·&#189;¨á¢ê±&#188;&#228;£¨ADDSET£&#169;&#206;a2&#184;&#246;HCLK 1/36M=27ns(êμ&#188;ê>200ns)                  
        //òò&#206;aòo&#190;§&#199;y&#182;ˉICμ&#196;&#182;áêy&#190;Yμ&#196;ê±oò£&#172;&#203;ù&#182;è2&#187;&#196;üì&#171;&#191;ì£&#172;óè&#198;&#228;&#182;&#212;1289&#213;a&#184;&#246;IC&#161;£
        FSMC_Bank1->BTCR[1]|=0XF<<8;          //êy&#190;Y±£′&#230;ê±&#188;&#228;&#206;a16&#184;&#246;HCLK                  
        //D′ê±Dò&#191;&#216;&#214;&#198;&#188;&#196;′&#230;&#198;÷  
        FSMC_Bank1E->BWTR[0]|=0<<28;         //&#196;£ê&#189;A                                                                      
        FSMC_Bank1E->BWTR[0]|=0<<0;                //μ&#216;&#214;·&#189;¨á¢ê±&#188;&#228;£¨ADDSET£&#169;&#206;a1&#184;&#246;HCLK
        //4&#184;&#246;HCLK£¨HCLK=72M£&#169;òò&#206;aòo&#190;§&#199;y&#182;ˉICμ&#196;D′D&#197;o&#197;&#194;&#246;&#191;í£&#172;×&#238;éùò2μ&#195;50ns&#161;£72M/4=24M=55ns           
        FSMC_Bank1E->BWTR[0]|=3<<8;         //êy&#190;Y±£′&#230;ê±&#188;&#228;&#206;a4&#184;&#246;HCLK       
        //ê1&#196;üBANK1,&#199;&#248;óò4
        FSMC_Bank1->BTCR[0]|=1<<0;                //ê1&#196;üBANK1£&#172;&#199;&#248;óò1                                               

这个应该怎么改才能显示呢?先谢谢大家了!!!!

现在不显示

现在不显示
QQ截图20181121211413.png
QQ截图20181121211426.png
QQ截图20181121211442.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-11-22 02:04:41 | 显示全部楼层
这种先应该读ID,看能否正常读取LCD的ID。不能的话,检查焊接、时序、程序的问题。
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2016-2-15
在线时间
42 小时
 楼主| 发表于 2018-11-22 08:01:45 | 显示全部楼层
正点原子 发表于 2018-11-22 02:04
这种先应该读ID,看能否正常读取LCD的ID。不能的话,检查焊接、时序、程序的问题。

能读出ID,但是读出来的事9325,但事实上是9341.这一般是什么问题呢?
以前用MINI32的时候是正常的。读出来的是9341。
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2016-2-15
在线时间
42 小时
 楼主| 发表于 2018-11-22 08:38:35 | 显示全部楼层
本帖最后由 isoimg2130 于 2018-11-22 08:46 编辑
正点原子 发表于 2018-11-22 02:04
这种先应该读ID,看能否正常读取LCD的ID。不能的话,检查焊接、时序、程序的问题。

能帮忙看下这个这一节是对的吗?应该是对的,这个是从精英版复制的。
                    
       [mw_shl_code=applescript,true] FSMC_Bank1->BTCR[0]=0X00000000;
        FSMC_Bank1->BTCR[1]=0X00000000;
        FSMC_Bank1E->BWTR[0]=0X00000000;

        FSMC_Bank1->BTCR[0]|=1<<12;               
        FSMC_Bank1->BTCR[0]|=1<<14;        
        FSMC_Bank1->BTCR[0]|=1<<4;                     
                                                            
        FSMC_Bank1->BTCR[1]|=0<<28;                                                                                    
        FSMC_Bank1->BTCR[1]|=1<<0;                           
        
        FSMC_Bank1->BTCR[1]|=0XF<<8;                    

        FSMC_Bank1E->BWTR[0]|=0<<28;                                                                     
        FSMC_Bank1E->BWTR[0]|=0<<0;        

        FSMC_Bank1E->BWTR[0]|=3<<8;
        FSMC_Bank1->BTCR[0]|=1<<0;     [/mw_shl_code]     
这个是用的A16,[mw_shl_code=applescript,true]//ê1ó&#195;NOR/SRAMμ&#196; Bank1.sector4,μ&#216;&#214;·&#206;&#187;HADDR[27,26]=11 A16×÷&#206;aêy&#190;Y&#195;üá&#238;&#199;&#248;·&#214;&#207;&#223;
//×¢òaéè&#214;&#195;ê±STM32&#196;ú2&#191;&#187;áóòò&#198;ò&#187;&#206;&#187;&#182;&#212;&#198;&#228;!                    
#define LCD_BASE        ((u32)(0x60000000 | 0x0001FFFE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)[/mw_shl_code]      
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-11-23 02:19:27 | 显示全部楼层
isoimg2130 发表于 2018-11-22 08:01
能读出ID,但是读出来的事9325,但事实上是9341.这一般是什么问题呢?
以前用MINI32的时候是正常的。读 ...

检查IO是不是相互之间有短路。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 05:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表