本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求通过定时器延时(阻塞)的方式,实现LED灯以1秒为周期闪烁。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。要对芯片进行设置,我们首先要了解定时器的工作机制。(1)定时器概述STM32F103系列单片机最多支持8个定时器,其中STM32F103R6单片机内部仅保留TIM1、TIM2和TIM3这3个定时器,其中TIM1是高级定时器,TIM2和TIM3是普通定时器。普通定时器除具备基本的定时功能外,还可
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求通过定时器延时(阻塞)的方式,实现LED灯以1秒为周期闪烁。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。要对芯片进行设置,我们首先要了解定时器的工作机制。(1)定时器概述STM32F103系列单片机最多支持8个定时器,其中STM32F103R6单片机内部仅保留TIM1、TIM2和TIM3这3个定时器,其中TIM1是高级定时器,TIM2和TIM3是普通定时器。普通定时器除具备基本的定时功能外,还可
本文例子参考《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写在前面在前面几节的基础上,我们已经基本了解了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
c语言疑难杂症之---Error:failedtoexecute'H:\keil\keilC51\C51\BIN\C51.EXE'就是这样的错误,翻译一下就是无法执行'C51.EXE'所以遇到这种情况我们该怎么办呢???不如让我们先来康康我的代码#include voidmain() { P2=0xfe; }可以明显的看出,这就是一个很普通的点亮LED的程序,也没有什么地方错了。咳咳,是时候讲解决方法辣!首先,右键快捷方式然后打开文件位置,或者直接翻到编译器的文件。找到TOOLS文件。找到[C51],在它下面的一行,有着PATH=&%*&%#^%&这样的怪东西这上面写的是C51文件夹的路径,
c语言疑难杂症之---Error:failedtoexecute'H:\keil\keilC51\C51\BIN\C51.EXE'就是这样的错误,翻译一下就是无法执行'C51.EXE'所以遇到这种情况我们该怎么办呢???不如让我们先来康康我的代码#include voidmain() { P2=0xfe; }可以明显的看出,这就是一个很普通的点亮LED的程序,也没有什么地方错了。咳咳,是时候讲解决方法辣!首先,右键快捷方式然后打开文件位置,或者直接翻到编译器的文件。找到TOOLS文件。找到[C51],在它下面的一行,有着PATH=&%*&%#^%&这样的怪东西这上面写的是C51文件夹的路径,
本文例子参考《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