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);
}
}
没看出有什么问题来呀,数据访问周期结束,片选消失很正常。
FSMC总线上只有一个LCD吗?如果只有LCD的话,你用IO做片选,直接拉低。
如果FSMC总线上还有别的设备的话,片选一直保持,就会造成数据冲突,轻则工作不正常,重则烧东西。
楼主选择的是硬件CS吗?可以换成软件控制,自己通过IO操作将CS拉高或者拉低。 toofree 发表于 2019-10-20 22:50
没看出有什么问题来呀,数据访问周期结束,片选消失很正常。
FSMC总线上只有一个LCD吗?如果只有LCD的话, ...
之前是担心CS每次撤销会影响通信,现在实测发现没问题了。 安 发表于 2019-10-21 10:04
楼主选择的是硬件CS吗?可以换成软件控制,自己通过IO操作将CS拉高或者拉低。 ...
指的是不接FSMC的CS,另外接一个端口是吧? 如果从设备(LCD控制器)规格可以接受片选长时间为低,大家建议用一个IO口去控制,这是一个简单好用的方式:)
页:
[1]