首页 > 其他分享 >STM32F103 点亮LED闪烁与仿真

STM32F103 点亮LED闪烁与仿真

时间:2023-07-21 14:44:21浏览次数:42  
标签:STM32F103 配置 LED 引脚 点亮 Init GPIO 对应

今天给大家分享一下STM32 流水灯简单的仿真吧,我感觉这个提供有用的,但是自己也是第一次使用,主要是感觉曲线很高级。在PWM中查看脉宽很有用。

code: led.c

#include "led.h"
#include "delay.h"
/*
GPIO的控制寄存器的配置
1、配置输出引脚
2、打开对应的输出的寄存器的时钟
3、配置引脚输出的模式:强上拉、推完、开漏输出
4、配置输出的速度。

*/
void Led_funcing(){
GPIO_DeInit(LED_GPIO_PORT);// 注意这里的函数非常的重要,这里是将对应的GPIO端口初始化成默认的样子,因为这个端口可能在以前使用过,其他的配置可能发生了改变
GPIO_InitTypeDef GPIOC_LED_Init; // 定义GPIO的结构体,也就是外设的结构体
RCC_APB2PeriphClockCmd( LED_GPIO_CLK,ENABLE); //打开对应的GPIO的时钟,注意这里不同的外设可能挂载的时钟不同,所以需要开原理图,
GPIOC_LED_Init.GPIO_Pin=LED_GPIO_PIN ; // 配置需要使用的引脚
GPIOC_LED_Init.GPIO_Mode=GPIO_Mode_Out_PP; //配置引脚的输出的模式
GPIOC_LED_Init.GPIO_Speed=GPIO_Speed_50MHz; // 配置输出的频率,这个在输入的时候不需要配置
GPIO_Init(LED_GPIO_PORT,&GPIOC_LED_Init); // 使用初始化函数初始化刚刚定义的结构体,以及对应的GPIO端口
}

code: mian.c

#include "stm32f10x.h"
#include "led.h"
#include "delay.h"

/*
功能的实现,注意在KEIL5中不要使用中文的空格这样将会出现错误。重点,重点,重点

*/
int main(){
Led_funcing();
// int k=5;
while(1)
{
GPIO_SetBits(LED_GPIO_PORT, LED_GPIO_PIN ); // 将对应的GPIO端口对应的引脚设置位高电平
delay(10000);//延时
GPIO_ResetBits(LED_GPIO_PORT, LED_GPIO_PIN); // 将对应的GPIO端口对应的引脚设置成低电平
delay(10000); // 延时,

}
}

/*
总结:
1、在进行不同功能函数的编写的时候,最好在USER文件夹下面建一个对应的文件,注意有C文件,那么就一定有H文件
2、在编译C文件的时候,首先应当在配中找到对应的H文件的文件夹目录
3、不同的芯片对应的库函数具有一定的差异,所以在进行引入库的时候,可能会出错误,
4、如果在编译的时候出现相关的库函数文件无法正常的打开,那么首先需要查看是否指定相关的路径
5、在魔术棒中的文件的输出最好都定义到自己的文件夹中,这样便于进行需要找。

*/

 配置仿真:选择使用对应的CPU即可

查看状态配置:

 

 仿真结果:

  最后仿真的结果:时间与单片机上实际运行的时间长短不一致,很多博主说改变配饰的频率为8.0MHZ 。

标签:STM32F103,配置,LED,引脚,点亮,Init,GPIO,对应
From: https://www.cnblogs.com/Nic-zhang/p/17571248.html

相关文章

  • Scrapy 部署错误:subprocess.CalledProcessError 以及解决方案
    最近在使用Scrapy和Scrapyd时,我遇到了一个关于subprocess.CalledProcessError的问题。在这篇博文中,我将描述这个错误、找出的原因以及最后的解决方案。错误描述在使用scrapyd-deploy命令部署我的Scrapy项目时,我遇到了如下的错误:subprocess.CalledProcessError:Comma......
  • AP5165B LED降压恒流驱动器 车灯 替代PT4115 支持PWM调光 线性调光
    产品应用原理图5-36V耐压3W射灯应用线路图产品描述AP5165B是一款外围电路简单的连续电流模式的降压型LED恒流驱动芯片。在输入电压高于LED电压时,可以有效地用于驱动一颗或者多颗串联LED。输出电流可调,最大可达1A。适用于3-36V电压范围的非隔离式恒流LED驱动领域。AP5165B......
  • STM32F103内部FLASH及地址表
    在我们应用开发时,经常会有一些程序运行参数需要保存,如一些修正系数。这些数据的特点是:数量少而且不需要经常修改,但又不能定义为常量,因为每台设备可能不一样而且在以后还有修改的可能。将这类数据存在指定的位置,需要修改时直接修改存储位置的数值,需要使用时则直接读取,会是一种......
  • Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive M
    目录概IRCoT代码TrivediH.,BalasubramanianN.,KhotT.,SabharwalA.Interleavingretrievalwithchain-of-thoughtreasoningforknowledge-intensivemulti-stepquestions.ACL,2023.概CoT(ChainofThought)+检索.IRCoT对于如上的问题,"Inwhatcountry......
  • 写驱动实现LED闪烁及基础概念查看
    2023/7/20初学内核,记录与分享,感叹内核学了后真的感觉很多东西都通透了,但是难度太大,只能浅浅初探。前提内核五大功能➢进程管理:进程的创建,销毁,调度等功能注:可中断,不可中断,就是是否被信号打断。从运行状态怎样改到可中断等待态,和不可中断等待态操作系统开始会对每个进程分配......
  • You don't have either docker-client or docker-client-latest installed. Pleas
    如何安装docker-client或docker-client-latest概述在本文中,我将向您展示如何安装docker-client或docker-client-latest,并解释每一步所需的代码及其用途。无论您是一名刚入行的开发者还是有经验的开发者,这篇文章都将帮助您完成安装过程。准备工作在开始之前,请确保您已经正......
  • Unable to find bundled Java version. macos
    UnabletofindbundledJavaversion.MacOS当在MacOS上运行一个需要Java环境的程序时,有时会遇到"UnabletofindbundledJavaversion"的错误提示。这意味着系统无法找到预装的Java版本。为什么会出现这个错误?在MacOS中,Java并不是预装的。因此,当我们在运行需要Ja......
  • 报from PyQt5.QtWidgets import * ImportError: DLL load failed: %1 不是有效的 Win3
    导入时,报fromPyQt5.QtWidgetsimport*ImportError:DLLloadfailed:%1不是有效的Win32application!查了很多资料,发现原来PyQt5安装包也是区分电脑位数的,我的电脑是32位的,装的PyQt5确是64位的,由于我这边用pipinstallPyQt5一直报timeout错误,所以我采用的是去官网直接下......
  • NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Ma
    问题提示:NVIDIA-SMIhasfailedbecauseitcouldn'tcommunicatewiththeNVIDIAdriver.MakesurethatthelatestNVIDIAdriverisinstalledandrunning.解决:sudoaptinstalldkmssudodkmsinstall-mnvidia-v525.116.03#其中,525.116.03是之前安装nvidia驱......
  • Visual Studio IDE 2022 - how to disable navigation to decompiled sources
    VisualStudioIDE2022-howtodisablenavigationtodecompiledsources ......