蓝桥杯STM32国赛笔记

CT117E-EX 扩展板笔记

数码管(74HC595)

RCLK(R:存储寄存器读取)

  • 上升沿 移位寄存器进入存储寄存器
  • 下降沿 数据保持不变

SCK(S:送入595)

  • 上升沿 数据寄存器数据移位。Q0–>Q1–>Q2–>Q3–>…–>Q7;
  • 下降沿 移位寄存器数据不变

SER(数据脚)

  • 串行数据输入端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void SEG_DisplayValue(u8 Bit1,  u8 Bit2, u8 Bit3)
{
u8 i = 0; //
u8 code_tmp = 0;

/*
*略过部分代码
*/

code_tmp = Seg7[Bit1];
for(i=0;i<8;i++){

if(code_tmp & 0x80){
SER_H;
}else{
SER_L;
}
SCK_H;//数据移位
code_tmp = code_tmp << 1;
SCK_L;
}
RCLK_H; //上升沿时移位寄存器进入存储寄存器
RCLK_L; //下降沿是数据保持不变
}

数码管显示数组

1
2
3
4
5
6
7
8
9
u8 code t_display[]={                       //标准字库
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,

//black - H J K L N o P U t G Q r M y
0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e,

//0. 1. 2. 3. 4. 5. 6. 7. 8. 9. -1
0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46};
1
2
3
//   0    1    2    3    4    5    6    7    8    9

0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77

ADC按键

ADC KEY 引脚

PA5 ADC_12_IN5

按键值

ADC值ADC按键区间
0<100
200<400
600<800
1000<1200
1300-1400<1600
1700-1900<2000
2100-2400<2600
2800-3000<3200

DHT11模块

芯片性能

  • 温度测量范围:0-50℃
  • 湿度测量范围:20-90%RH
  • 采样周期 :1S

数据格式

Byte0Byte1Byte2Byte3Byte4
湿度整数数据湿度小数数据温度整数数据温度小数数据校验和

编程思路

  • 主机输出
  • 主机拉 至少 18ms
  • 主机拉 20-40us
  • 主机输入
  • 主机等待信号线拉 (DHT11发送持续 40-50us 响应信号)
  • 主机等待信号线拉 (DHT11发送持续 40-50us 拉高信号)
  • for(){ //40bit数据 5Byte
    • 主机等待数据线拉 (数据Bit开始)
    • 主机等待数据线拉
    • 主机延时 时间大于28us小于70usType值 40us
    • 主机读取数据
  • }
  • 主机输出
  • 主机拉高

技巧&TIP

  • DHT11分辨率都是整数级别的读取小数的数据部分没有意义。(全为0)

  • 读取间隔建议大于100ms(采样 1S 过高的读取频率没有意义)

  • 在72MHz频率下 Delay_LCD 运行一次大约 375us

1
2
3
4
5
6
7
8
9
void Delay_LCD(u16 n)
{
u16 i,j;
for (i = 0;i<n;++i)
for(j=0;j<3000;++j);
}
//将里面的 3000 改成 8 运行一次大概 1us
//运行次数越少比1us越多
//运行次数越多比1us越少

18B20模块

芯片性能

  • ±0.5°C accuracy from -10°C to +85°C
  • Can be powered from data line. Power supply range is 3.0V to 5.5V
  • Converts 12-bit temperature to digital word in 750 ms (max.)

数据格式

数据格式

  • 写Byte数据先写低位

  • 读Byte数据先读出的是低位

  • 读出来的温度先是 LSM 8bit 然后是 MSB 8bit

总线协议&时序

复位时序

读写时序

编程思路

0xCC OW_SKIP_ROM

0x44 DS18B20_CONVERT

0xCC OW_SKIP_ROM

0xBE DS18B20_READ

LIS302DL

NULL

光敏 D&A

光敏D

  • GPIOA_Pin_3
  • GPIO_Mode_IPU

光敏A

  • GPIOA_Pin_4

  • ADC1

  • ADC_Channel_4

电位器

NULL

PULS&PWM

PA1 TIM2_CH2

PA2 TIM2_CH3

PA6 TIM3_CH1

PA7 TIM3_CH2

界面颜色搭配

1
2
3
4
5
6
7
8
9
LCD_SetBackColor(Blue);
LCD_SetTextColor(White);
//Line0 1
LCD_SetBackColor(White);
LCD_SetTextColor(Blue);
//Line1-7 7
LCD_SetBackColor(Blue);
LCD_SetTextColor(Black);
//Line89 2

蓝桥杯STM32国赛笔记
https://www.oikiou.top/2019/b9b15cd2/
作者
Oikiou
发布于
2019年6月4日
许可协议