stm32 单片机的学习记录
STM32与LCD的显示
使用器材:STM32F103RCT6,LCD1602
使用到的LCD引脚如下图所示
其中分为供电引脚GND VDD5.0V
功能引脚RS RW E
以及D0~D7向并行数据总线(Data Bus)
VO 对比度调节引脚
BLA (Backlight Anode)背光正极
BLK (Backlight Cathode):背光负极
| 电平 | RS | RW | E |
|---|---|---|---|
| 低 | 指令 | 写 | 执行 |
| 高 | 数据 | 读 | 读取 |
下图为指令表
| 编号 | 指令 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 显示屏复位 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| 2 | 光标归位 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * |
| 3 | 置输入模式 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S |
| 4 | 显示控制(开关) | 0 | 0 | 0 | 0 | 1 | D | C | B |
| 5 | 光标字符位移 | 0 | 0 | 0 | 1 | S/C | R/L | * | * |
| 6 | 功能设置 | 0 | 0 | 1 | DL | N | F | * | * |
I/D: 光标的移动方向,0左移,1右移;
S: 1所有字符串左移位右移位,0不移动
D: 0关显示,1开显示
C: 控制光标是否显示,0关1开
B: 控制光标是否闪烁,0关1开
S/C: 光标和字符移位控制,0仅光标,1都移动
R/L: 移动方向,0左1右
DL: 几位总线,0为八位,1为四位
N: 显示多少行,0单1双
F: 字符阵大小,0为5×7,1为5×11
WorkFlow:
LCD初始化 -> 写数据 -> 显示
假设我要写一个”A”的示例如下:
- 初始化LCD
- 设置工作模式(如 8位总线,2行显示,5x8点阵) → [发送指令,触发一次 E 跳变]
- 设置光标的显示(开/关显示,开/关光标,光标闪烁/不闪烁) → [发送指令,触发一次 E 跳变]
- 设置光标/字符何移位(如写一个字后,光标自动向右/左移动一格)→ [发送指令,触发一次 E 跳变]
- 清屏 → [发送指令,触发一次 E 跳变]
- 写数据
- 设定显示的位置
- RS=0,RW=0
- D0~D7 = 地址位置(第一行0x80-0x8F,第二行0xC0-0xCF)
- E跳变
- 设定显示的内容
- RS=1,RW=0
- D0 ~ D7 = ‘A’
- E跳变
- 设定显示的位置
- 显示内容
STM32控制舵机的旋转
使用器材:STM32F103RCT6,SG90
此型号舵机供电5v,中间为正极,黄色线为驱动线,需要发出50hz的电平切换
函数设计:
1 | void Ctrl_Servo(uint8_t degree) { |
STM32中RTC时钟的用法
Awaiting Edit
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 沈澜珉 - Daily!