1. 项目背景与核心功能
在嵌入式系统开发中,密码安全检测与串口通信是两个非常基础但至关重要的功能模块。STM32F103作为意法半导体推出的经典Cortex-M3内核微控制器,凭借其丰富的外设资源和稳定的性能,成为许多嵌入式项目的首选平台。
这个项目的核心目标是在STM32F103平台上实现一个完整的密码强度检测系统,并通过串口与上位机进行通信交互。系统需要能够:
- 实时接收用户输入的密码字符串
- 按照预设规则评估密码强度等级
- 将检测结果通过串口发送给上位机
- 同时在本地OLED显示屏上显示密码强度信息
提示:密码强度检测算法可以根据实际需求定制,常见规则包括长度检查、字符类型多样性检查等。本项目中我们采用五级强度评估体系。
2. 硬件设计与外设配置
2.1 STM32F103最小系统搭建
STM32F103C8T6作为本项目的核心控制器,需要构建一个稳定的最小系统:
- 电源电路:3.3V稳压供电,注意退耦电容的布局
- 时钟电路:8MHz外部晶振+22pF负载电容
- 复位电路:10kΩ上拉电阻+100nF电容
- 调试接口:SWD四线接口(VCC、GND、SWDIO、SWCLK)
注意:STM32F103的BOOT0引脚需要正确配置,通常通过10kΩ电阻下拉到地,确保从主Flash启动。
2.2 串口通信硬件设计
本项目使用USART1作为通信接口:
- TX(PA9)连接CH340G的RX引脚
- RX(PA10)连接CH340G的TX引脚
- 波特率设置为115200bps(8位数据位,无校验,1位停止位)
CH340G USB转串口芯片的电路设计要点:
- 在D+和D-线上串联22Ω电阻
- 添加ESD保护二极管
- 在VCC和GND之间放置0.1μF去耦电容
2.3 OLED显示模块连接
使用0.96寸128x64分辨率的SSD1306 OLED模块:
- 通信方式:4线SPI接口
- 引脚连接:
- CS -> PA4
- DC -> PA3
- RES -> PA2
- SDA -> PA7(MOSI)
- SCL -> PA5(SCK)
2.4 按键输入电路
用于密码输入和系统控制:
- 4x4矩阵键盘通过GPIO扩展芯片(如74HC1
