[其他ST产品] 求大神!STM32f103控制1602的端口怎么设置?推挽还是开漏输出?需要检测忙状态吗?

[复制链接]
1898|18
 楼主| powerantone 发表于 2023-11-28 11:55 | 显示全部楼层 |阅读模式
void  Busy_Wait(void)                       //检测液晶忙状态
{
   Reset_RS();  //rs=0
         Set_RW();    //rw=1   建立高低电平需要延时吗?多久
         Set_E();     //en=1   
        delay_ms(1);  //延时1ms   72Mhz

        while(PCout(11) == 1)   //检测数据口D7,判断忙状态  需要检测数据吗?还是直接延时就可以,原理图里的是5V是3.3V工作?  
        {         Reset_E();          //en=0
                  delay_ms(1);        
                 Set_E();             //en=1  重复使能失能使得D7口为0,不忙(感觉这个不一定需要,试了也不行)
                 delay_ms(1);
        }
            delay_ms(5);
            Reset_E();         //en=0
         
}

void Write_Cmd(uint8_t Cmd)  //写指令
{
   Busy_Wait();     //判断液晶忙状态
   Reset_RS();      
   Reset_RW();
   Reset_E();       //
//下面是数据口的配置,这个数据口配置该怎么写?我写的是类似ODR(BRR)形式
  // GPIO_WriteBit(GPIOC,GPIO_Pin_11,(BitAction)((Cmd&0x80)>>7));//D7
  // GPIO_WriteBit(GPIOC,GPIO_Pin_12,(BitAction)((Cmd&0x40)>>6)); //D6
  // GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)((Cmd&0x20)>>5)); //D5
   //GPIO_WriteBit(GPIOB,GPIO_Pin_3,(BitAction)((Cmd&0x10)>>4)); //D4
   //GPIO_WriteBit(GPIOB,GPIO_Pin_4,(BitAction)((Cmd&0x08)>>3)); //D3
   //GPIO_WriteBit(GPIOB,GPIO_Pin_5,(BitAction)((Cmd&0x04)>>2)); //D2
   //GPIO_WriteBit(GPIOB,GPIO_Pin_6,(BitAction)((Cmd&0x02)>>1)); //D1
   //GPIO_WriteBit(GPIOB,GPIO_Pin_7,(BitAction)((Cmd&0x01))); //D0
         Set_E();
         delay_ms(1);  //     高脉冲 该延时多久,1ms够不?还是多了?
         Reset_E();  //         
}
624326565648a9caca.jpg
35560656564922fcbc.jpg
dongnanxibei 发表于 2023-11-29 16:02 | 显示全部楼层
你参考51单片机的。
单片小菜 发表于 2023-11-29 16:02 | 显示全部楼层
主要是看驱动能力和驱动电流吧
小夏天的大西瓜 发表于 2023-11-29 22:42 | 显示全部楼层
现在驱动能力都有富裕,应该没问题
SantaBunny 发表于 2023-11-30 09:04 | 显示全部楼层
看驱动能力和驱动电流
jf101 发表于 2023-11-30 09:27 | 显示全部楼层
一般应该不需要检测忙信号吧
laocuo1142 发表于 2023-11-30 14:51 | 显示全部楼层
建议参考STM32F103的官方文档和1602 LCD的接口规范来进行设计和编程。
flycamelaaa 发表于 2023-11-30 14:51 | 显示全部楼层
是否需要检测忙状态,一般来说是需要检测的。1602 LCD通常会有一个BUSY引脚,用于指示LCD是否正在忙于处理数据或命令。通过检测这个引脚的电平状态,可以避免在LCD忙时进行不必要的读写操作,从而保护LCD不受损坏。
probedog 发表于 2023-11-30 14:52 | 显示全部楼层
关于推挽输出和开漏输出,这取决于你的硬件电路设计。推挽输出通常用于需要高电流输出的场合,而开漏输出则适用于需要低电平使能或高电平使能的场合。如果你需要控制1602 LCD的背光亮度或其他需要电流驱动的元件,可能需要使用推挽输出。
Undshing 发表于 2023-11-30 16:17 来自手机 | 显示全部楼层
驱动能力够不
帛灿灿 发表于 2024-8-16 09:11 | 显示全部楼层

在主要开关电源拓扑中主要的电流环路
Bblythe 发表于 2024-8-16 10:14 | 显示全部楼层

每条大电流的地线要短而宽
周半梅 发表于 2024-8-16 12:10 | 显示全部楼层

每个环路要与其他环路分开
Pulitzer 发表于 2024-8-16 13:13 | 显示全部楼层

布置PCB的时候,电源地的安排要十分小心
童雨竹 发表于 2024-8-16 15:09 | 显示全部楼层

从邻近的引线上引入RF(射频)信号
Wordsworth 发表于 2024-8-16 16:12 | 显示全部楼层

这些电流环路的布线
Clyde011 发表于 2024-8-16 17:15 | 显示全部楼层

多个电容并联
公羊子丹 发表于 2024-8-16 18:08 | 显示全部楼层

所有开关电源设计
您需要登录后才可以回帖 登录 | 注册

本版积分规则

682

主题

4082

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部