一、LED模块
1.LED底层代码
1  | void Led_Disp(unsigned char addr, enable)  | 
2.基本调用方式
1  | ucLED[n]=x;  | 
二、按键模块
1.按键底层代码
1  | unsigned char Key_Read()  | 
2.基本调用方式
1  | switch(Key_Down)//下降沿  | 
2.3 模式切换
第十届省赛真题
第十二届省赛真题
2.4 参数设置
第九届省赛真题
第八届省赛真题
2.5 参数保存
第五届省赛真题
第十一届省赛真题
2.6 特定使能
第十一届省赛真题
2.7 长按跳转 松手返回
第八届省赛真题
2.8 键盘输入
模拟训练二
2.9 长按短按 效果不同
三、数码管模块
1.数码管底层代码
1  | unsigned char seg_dula[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};  | 
2.基本调用方式
1  | Seg_Buf[X] = Y;  | 
3.3 显示整数变量
第十二届省赛真题
3.4 显示小数点变量
第十二届省赛真题
3.5 不同状态显示不同内容
第十二届省赛真题
3.6 高位熄灭
第十届省赛真题
3.7 选中单元闪烁
第八届省赛真题
四、继电器蜂鸣器
1.底层代码
1  | static unsigned char temp_1 = 0x00;  | 
…
NE555
绑定定时器0,应采用计数器模式
#超声波
1.超声波底层代码
1  | void Delay12us() //@12.000MHz  | 
2.PCA写法
1  | unsigned char Ut_Wave_Data() //超声波距离读取函数  | 
#串口
1.串口底层
1  | /* 串口初始化函数 */  | 
**2. **串口接收数据
模拟题
**3. **串口发送数据
模拟题
- 内存溢出:idata/xdata/data/code
 
第三部分 大模板
一、头文件声明区域
1  | /* 头文件声明区 */  | 
二、变量声明区域
1  | /* 变量声明区 */  | 
三、按键处理函数
1  | /* 键盘处理函数 */  | 
四、信息处理函数
1  | /* 信息处理函数 */  | 
五、其他显示函数
1  | /* 其他显示函数 */  | 
六、串口处理函数
1  | /* 串口处理函数 */  | 
七、定时器初始化函数
1  | /* 定时器0中断初始化函数 */  | 
八、中断服务函数
1  | /* 定时器0中断服务函数 */  | 
九、串口服务函数
1  | /* 串口1中断服务函数 */  | 
十、主函数
1  | /* Main */  | 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Turin's Blog!


![【stm32单片机】[操作系统][RT-Thread][3]线程通信](/img/blog_cover/rt-thread.jpg)