grayloach 发表于 2019-10-19 15:18:41

FSMC的片选信号怎么保持?

想使用FSMC来驱动TFT屏,用的是8位数据模式,使用STM32CubeMX生成的代码,数据发送没有问题。
但是FSMC的片选信号貌似不能保持,通过逻辑分析仪发现每发送一个字节就把片选自动撤销了。
有没有办法让它保持住?


数据发送主要代码如下:
void LCD_WriteData(uint8_t data)
{
      *((__IO uint8_t *)0x60000000 + 2) = data;
}

void main()
{
//初始化操作
    while(1)
    {
      LCD_WriteData(0x12);      
      LCD_WriteData(0x34);      
      LCD_WriteData(0x56);      
      LCD_WriteData(0x78);
      }
}


toofree 发表于 2019-10-20 22:50:20

没看出有什么问题来呀,数据访问周期结束,片选消失很正常。

FSMC总线上只有一个LCD吗?如果只有LCD的话,你用IO做片选,直接拉低。
如果FSMC总线上还有别的设备的话,片选一直保持,就会造成数据冲突,轻则工作不正常,重则烧东西。

发表于 2019-10-21 10:04:10

楼主选择的是硬件CS吗?可以换成软件控制,自己通过IO操作将CS拉高或者拉低。

grayloach 发表于 2019-10-26 00:30:22

toofree 发表于 2019-10-20 22:50
没看出有什么问题来呀,数据访问周期结束,片选消失很正常。

FSMC总线上只有一个LCD吗?如果只有LCD的话, ...

之前是担心CS每次撤销会影响通信,现在实测发现没问题了。

grayloach 发表于 2019-10-26 00:31:04

安 发表于 2019-10-21 10:04
楼主选择的是硬件CS吗?可以换成软件控制,自己通过IO操作将CS拉高或者拉低。 ...

指的是不接FSMC的CS,另外接一个端口是吧?

butterflyspring 发表于 2019-10-29 11:52:39

如果从设备(LCD控制器)规格可以接受片选长时间为低,大家建议用一个IO口去控制,这是一个简单好用的方式:)
页: [1]
查看完整版本: FSMC的片选信号怎么保持?