本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求理解H桥电路的工作原理,结合前面几个项目学习过的定时器中断、EXTI、串口通讯等,要求通过7个按钮控制步进电动机的运行状态,包括:连续正转、连续反转、停止、加速、减速、点动正转和点动反转。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。其中我们添加了一个达林顿晶体管阵列ULN2803,一个步进电动机MOTOR-STEPPER。此外,我们还添加了一个虚拟仪表:虚拟终端VIRTUALTERMINAL,将
写在前面令人愉快又颓废的周日马上就要到了,正在计划这周博客写什么的我,突然收到导师发给我的消息,What?要给我发补助?这样中午不得去食堂加一个餐,很快啊,我就说了声:谢谢。但后续证明我还是太嫩了些,天上是没有免费午餐的。不过对于这种专业相关,而且能从中学到不少东西的任务,我还是十分乐意去干的,就害怕是那种重复性的(对我来说)毫无价值的体力性劳动。上学嘛,当然是以接触新事物,了解新知识为主的,帮老师做些东西无可厚非,但前提是要让学生能感觉到自己是在成长,要是一个双赢的局面(满满的求生欲)。哎呀跑题啦,具体的电路图可能是项目相关的,这里就不放了,但并不妨碍我对它进行分析、解构与重组。初中生去设计
写在前面令人愉快又颓废的周日马上就要到了,正在计划这周博客写什么的我,突然收到导师发给我的消息,What?要给我发补助?这样中午不得去食堂加一个餐,很快啊,我就说了声:谢谢。但后续证明我还是太嫩了些,天上是没有免费午餐的。不过对于这种专业相关,而且能从中学到不少东西的任务,我还是十分乐意去干的,就害怕是那种重复性的(对我来说)毫无价值的体力性劳动。上学嘛,当然是以接触新事物,了解新知识为主的,帮老师做些东西无可厚非,但前提是要让学生能感觉到自己是在成长,要是一个双赢的局面(满满的求生欲)。哎呀跑题啦,具体的电路图可能是项目相关的,这里就不放了,但并不妨碍我对它进行分析、解构与重组。初中生去设计
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求掌握\(I^2C\)的通讯方法和时序,通过串口发送数据,单片机接收并存入AT24C02首地址中。按下按键BTN,单片机将存放在AT24C02首地址中的数据取出并通过串口发送。串口通信参数:波特率为19200bits/s;无校验。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。其中我们添加了一个I2C通信的外设:EEPROM芯片AT24C02(在Proteus中为FM24C02)。此外,还添加了\(I
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求掌握\(I^2C\)的通讯方法和时序,通过串口发送数据,单片机接收并存入AT24C02首地址中。按下按键BTN,单片机将存放在AT24C02首地址中的数据取出并通过串口发送。串口通信参数:波特率为19200bits/s;无校验。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。其中我们添加了一个I2C通信的外设:EEPROM芯片AT24C02(在Proteus中为FM24C02)。此外,还添加了\(I
常用分式规划变换简述与仿真实验在做课题时遇到一个子问题为线性分式规划问题,这里尝试用不同方法求解,同时做一些记录!1.线性分式规划问题模型2.Charnes-Cooper变换方法3.Dinkelbach变换方法3.1.Dinkelbach变换方法介绍3.2.Dinkelbach算法总结3.3.本例的Dinkelbach变换4.quadratic变换4.1.quadratic变换介绍4.2.Quadratic变换算法总结4.3.本例的Quadratic变换形式5.数值计算及算法实现5.1.参数设定5.2.Charnes-Cooper变换算法实现5.3.Dinkelbach变换算法实现5.4.Qu
常用分式规划变换简述与仿真实验在做课题时遇到一个子问题为线性分式规划问题,这里尝试用不同方法求解,同时做一些记录!1.线性分式规划问题模型2.Charnes-Cooper变换方法3.Dinkelbach变换方法3.1.Dinkelbach变换方法介绍3.2.Dinkelbach算法总结3.3.本例的Dinkelbach变换4.quadratic变换4.1.quadratic变换介绍4.2.Quadratic变换算法总结4.3.本例的Quadratic变换形式5.数值计算及算法实现5.1.参数设定5.2.Charnes-Cooper变换算法实现5.3.Dinkelbach变换算法实现5.4.Qu
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求通过定时器中断的方式,实现流水灯的效果。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。在上一节定时器阻塞延时的基础上,我们在本项目中同样使用TIM3进行中断。时钟频率采用默认的8MHz,我们不妨设置PSC为3999,ARR为999,那么此时可以计算出TIM3的计数脉冲周期为\(T_{CNT}\)为0.5ms,一次中断的溢出时间\(T_{OUT}\)为0.5s。打开CubeMX,建立工程。我们首先将
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求通过定时器中断的方式,实现流水灯的效果。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。在上一节定时器阻塞延时的基础上,我们在本项目中同样使用TIM3进行中断。时钟频率采用默认的8MHz,我们不妨设置PSC为3999,ARR为999,那么此时可以计算出TIM3的计数脉冲周期为\(T_{CNT}\)为0.5ms,一次中断的溢出时间\(T_{OUT}\)为0.5s。打开CubeMX,建立工程。我们首先将
本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求通过定时器延时(阻塞)的方式,实现LED灯以1秒为周期闪烁。硬件设计在第一节的基础上,在Proteus中添加电路如下图所示。要对芯片进行设置,我们首先要了解定时器的工作机制。(1)定时器概述STM32F103系列单片机最多支持8个定时器,其中STM32F103R6单片机内部仅保留TIM1、TIM2和TIM3这3个定时器,其中TIM1是高级定时器,TIM2和TIM3是普通定时器。普通定时器除具备基本的定时功能外,还可