stm32应用、项目、调试

主要记录实际使用中的一些注意点。

1.LCD

1.LCD1602

电路图:

看手册:电源和背光可以使用5v或者3.3v,数据和控制引脚直接和单片机引脚连接即可。

单片机型号:stm32c031c6t6 可以直接使用推完输出连接D0--D7,RS,EN,RW引脚,3.3v就可以驱动(我使用的是这种方式);或者使用开漏输出,外面加上拉电阻5v驱动(没有用,不知道效果)。

两个间隔时间:

1.控制时序的延时:这个用的多,时间太短会显示不正常,或者不显示。

**2.发给lcm指令之间的延时:**一般初始化的时候回用一下

复制代码
/*液晶初始化*/
void Lcm1602A_Init(void) 
{    Lcm1602A_Wr_Command(0x38);
    Lcm1602A_Wr_Command(0x38); //2次显示模式设置
    Lcm1602A_Wr_Command(0x0c); //显示及光标设置
    Lcm1602A_Wr_Command(0x01); //显示清屏
    HAL_Delay(2);
    Lcm1602A_Wr_Command(0x06); //显示光标移动设置
    Lcm1602A_Display_String();
}

/*发送指令给lcd*/
void Lcm1602A_Wr_Command(uint8_t wrcommand) 
{
    RS_1602A(0);//控制引脚
    RW_1602A(0);//控制引脚
    Lcm_Delay(LCM_DELAY_TIME);//这个延时很重要
    Lcm1602A_Data_Write(wrcommand);//写入数据(指令)
    Lcm_Delay(LCM_DELAY_TIME);
    E_1602A(1);//使能引脚
    Lcm_Delay(LCM_DELAY_TIME);
    E_1602A(0);
}

遇到的问题:减少Lcm_Delay(LCM_DELAY_TIME)时间;导致初始化失败,可是看手册的话,接受一个指令1us就够了,可是实际使用却需要几十us或者更长时间才够,不知道哪里的问题。先不管了。

Lcm_Delay(LCM_DELAY_TIME)不同时间下:

初始化效果:

正常如下

间隔100us如下

间隔50us:

间隔10us如下

间隔2us如下

其他状况:

本来应该是第一行显示0--9 符号 第二行显示字母的,

不知道是程序被动过了,还是编译环境,还是什么有变化,初始化完成就变成了这样。

同样的时间下,连续两行显示全部显示不成功,但是一次显示几个字符却可以正常显示,当时调试的时候,就是这原因没注意到初始化没成功。

处理方式:增长延时的时间,lcd显示不需要很实时。

原因:同样的Lcm_Delay(LCM_DELAY_TIME) (大概延时10us),

(外部晶振用的是25mhz)定时器tim3的Prescaler = 47; Period = 1;可以正常初始化

改成Prescaler = 24; Period = 999; 初始化会出错。

2.LCD12864

字体显示:

横置横排:平时看的从左到右显示的那种

竖置横排:古代的那种排版

常用芯片:ST7567

2.rs485、rs232、rs422

rs485使用:

max3485:3.3v左右驱动

max485:5v左右驱动,不过有时候3.3v驱动也可以使用,具体有什么问题或者通过电路规避问题还没有了解过。

rs485和rs422有相同的地方,485满足422的规范,反过来不行,要注意。

MAX481/MAX483/MAX485/ MAX487:用于rs485

MAX488/MAX490/MAX491:用于rs422

MAX232/MAX3232:用于 rs232

以上是常见型号,不同公司命名方式不同,

通讯芯片:rs485芯片使用电路图

此电路图是简单版本,没有偏置电路(上下拉),防冲击器件,可以使用的,只是少了安全等旁电路。

资料:

RS485使用注意事项(上下拉电阻)

https://www.cnblogs.com/CodeWorkerLiMing/p/14259593.html

rs485调试遇过的问题:

单片机引脚TX和RX搞反了,测试max487之前的串口是有数据的,电脑串口助手能够接受到,经过接收不到了。 找原因以为是ab相少了上下拉电阻;电压什么不对,后来确定原因是引脚反了,虽然反了,但是中间偶尔也能收到几个正确的字符,所以开始主要以为是程序有问题。

如果max输入端没问题,输出端差分引脚ab接反了,电脑串口助手也能收到字符,就像波特率不对,也能收到字符,不过解析出来的是乱码。

资料:

关于485通讯芯片MAX487的一个问题

关于485通讯芯片MAX487的一个问题 - 通信技术 - 21ic电子技术开发论坛

相关推荐
HUI-47416 分钟前
EG1162|SOP‑16 高压同步整流降压控制器,最高 600V 输入,大电流 5V 输出优选
嵌入式硬件·硬件工程
POMAGTOR20 分钟前
【5G 通讯 POGOPIN 弹簧顶针连接器解决方案】
网络·嵌入式硬件·5g
ZLG_zhiyuan32 分钟前
测试方案 | 从“000”到“111”,高效完成100BASE-TX以太网眼图测试
单片机·嵌入式硬件
恒锐丰科技林技术员33 分钟前
EG1198:120V 宽压内置 MOS 降压 DC‑DC 电源芯片解析
经验分享·嵌入式硬件·硬件工程
数字新视界2 小时前
能耗管理系统的综合方案与优化实战解析
嵌入式硬件·物联网·数据中心·数据中心基础设施管理·dcim管理系统
深圳市恒锐丰科技杨生2 小时前
EG3525S 推挽 / 半桥 PWM 控制器|屹晶 EGmicro
嵌入式硬件·硬件工程
H_oRIZoN_2 小时前
Linux入门DAY39(51 单片机入门笔记|最小系统、位运算、处理器、数码管基础梳理)
单片机·嵌入式硬件
12.=0.2 小时前
【电学基础】
单片机·嵌入式硬件
开发笔记-阿牛2 小时前
嵌入式蓝牙开发:AC2005B 芯片技术解析 —— 省晶振设计、13dBm 射频与 Auracast 广播音响开发指南
人工智能·单片机·音视频
单片机仿真设计2 小时前
【proteus仿真】基于 STM32 单片机电梯运行状态监控设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus