本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6写在前面在前面几节的基础上,我们已经基本了解了STM32F103的GPIO、外部中断、定时器、串口通信和一些片内外设,接下来几节都将对其常用的独立外设进行介绍。项目要求掌握LCD1602的驱动方法,要求在屏幕第一行显示“HelloWorld!”。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。其中我们添加了一个LCD1602液晶显示器LM016L。LCD1602:1)简介:LCD1602液晶显示屏能够显示2
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求同04节,电路常态为流水灯状态,当按下按钮BTN0时,8个LED灯全亮全灭闪烁3次后恢复到常态;当按下按钮BTN1时,8个LED灯间隔交替闪烁3次后恢复常态;当BTN0和BTN1同时按下时,系统优先相应BTN1。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示,其中我们添加了一个排阻RX8、一组8个LED灯、两组由按钮BUTTON构成的按键电路。根据电路图和芯片技术手册,我们知道PB0可用作外部中断0
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求同04节,电路常态为流水灯状态,当按下按钮BTN0时,8个LED灯全亮全灭闪烁3次后恢复到常态;当按下按钮BTN1时,8个LED灯间隔交替闪烁3次后恢复常态;当BTN0和BTN1同时按下时,系统优先相应BTN1。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示,其中我们添加了一个排阻RX8、一组8个LED灯、两组由按钮BUTTON构成的按键电路。根据电路图和芯片技术手册,我们知道PB0可用作外部中断0
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求实现流水灯效果。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示,其中我们添加了一个排阻RX8。根据电路图我们可以知道,当STM32单片机输出低电平时,发光二极管导通。打开CubeMX,按照建立工程,配置PC0-PC7引脚为GPIO_Output。点击“ProjectManager”--“AdvancedSettings”,将GPIO的库改为LL库(我们后面需要用到LL库中的函数),点击“Genera
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求按下按钮控制LED灯的亮灭。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。打开CubeMX,按照建立工程,配置PC0引脚为GPIO_Output,PC1引脚为GPIO_Input。点击“GeneratorCode”生成Keil工程。软件编写点击“OpenProject”在Keil中打开工程,双击“main.c”文件。本次仿真我们新用到读引脚状态函数HAL_GPIO_ReadPin(),其官方文档A
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求实现流水灯效果。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示,其中我们添加了一个排阻RX8。根据电路图我们可以知道,当STM32单片机输出低电平时,发光二极管导通。打开CubeMX,按照建立工程,配置PC0-PC7引脚为GPIO_Output。点击“ProjectManager”--“AdvancedSettings”,将GPIO的库改为LL库(我们后面需要用到LL库中的函数),点击“Genera
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求按下按钮控制LED灯的亮灭。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。打开CubeMX,按照建立工程,配置PC0引脚为GPIO_Output,PC1引脚为GPIO_Input。点击“GeneratorCode”生成Keil工程。软件编写点击“OpenProject”在Keil中打开工程,双击“main.c”文件。本次仿真我们新用到读引脚状态函数HAL_GPIO_ReadPin(),其官方文档A
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求STM32单片机控制单个LED灯亮灭,在PC0引脚控制LED灯以1s为周期闪烁。硬件设计在上一节的基础上,在Proteus中添加电路如下图所示。打开CubeMX,按照建立工程,配置PC0引脚为GPIO_Output。点击“GeneratorCode”生成Keil工程。注意:我们这里没有选择时钟振荡源,可以按照上一节中介绍的设置,也可以使用内部默认的RC振荡器。同时我们使用默认的推挽输出模式,也可以根据需要通过cub
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求STM32单片机控制单个LED灯亮灭,在PC0引脚控制LED灯以1s为周期闪烁。硬件设计在上一节的基础上,在Proteus中添加电路如下图所示。打开CubeMX,按照建立工程,配置PC0引脚为GPIO_Output。点击“GeneratorCode”生成Keil工程。注意:我们这里没有选择时钟振荡源,可以按照上一节中介绍的设置,也可以使用内部默认的RC振荡器。同时我们使用默认的推挽输出模式,也可以根据需要通过cub
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求实现数码管动态显示数字1~8。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示,其中我们添加了一个排阻RX8、一个8位共阳极七段数码管显示器7SEG-MPX8-CA-BLUE、一个非门电路74HC04。由于共阳极数码管是低电平驱动的,根据电路图我们可以知道,当STM32单片机输出低电平时,数码管发光。注意:由于电路中用到的反相器74HC04仅有6个通道,为了避免芯片浪费,我们也可以使用8位数码管可以使