STM32学习第一步:点灯

发布者:温暖微笑最新更新时间:2022-06-30 来源: csdn关键字:STM32  点灯 手机看文章 扫描二维码
随时随地手机看文章

前言

任务需求:使用stm32c8点亮两个led小灯并实现闪烁效果


注:本次任务包含CubeMX+hal库以及单独使用标准库两种写法完成代码构建。并最后通过Proteus仿真测试运行结果


提示:以下是本篇文章正文内容,下面案例可供参考


一、CubeMX生成keil5工程文件

工程配置:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

时钟配置:

在这里插入图片描述

生成Keil5工程文件:注意:路径及名称不能有中文

在这里插入图片描述

hal库完善代码逻辑

注意:前面我们通过cubemx将工程硬件配置完毕,所以这里只需要完善软件逻辑层代码


 while (1)

  {

    /* USER CODE END WHILE */

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8|GPIO_PIN_9,GPIO_PIN_RESET);

HAL_Delay(500);

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8|GPIO_PIN_9,GPIO_PIN_SET);

HAL_Delay(500);


    /* USER CODE BEGIN 3 */

  }


编译并运行

在这里插入图片描述

二、标准库写法及完善代码逻辑

#include "stm32f10x.h"


void Delay(unsigned int count){

unsigned int i;

for(;count!=0;count--){

i=5000;

while(i--);

}

}


int main(){

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能GPIO时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;//PB引脚配置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//配置PB为推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//GPIOB速度为50Mhz

GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化PB

GPIO_SetBits(GPIOB,GPIO_Pin_9);//PA9输出高电压,LED熄灭

while(1){

GPIO_ResetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_9);//输出低电平,LED点亮

Delay(500);//延时500毫秒

GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_9);//输出高电平,LED熄灭

Delay(500);//延时500毫秒

}

}


三、Proteus仿真测试

对之前两种写法生成的hex文件分布测试均完成本次目标


选择生成的hex文件并将时钟设置为8M

在这里插入图片描述

运行仿真:

在这里插入图片描述
在这里插入图片描述

关键字:STM32  点灯 引用地址:STM32学习第一步:点灯

上一篇:STM32_GPIO口
下一篇:STM32学习第四课:STM32 c语言学习基础4

推荐阅读最新更新时间:2024-10-31 11:16

图解Stm32使用jlink下载程序时jtag接口(SW和JTAG模式)的简化方法
用过stm32的人都知道stm32有两种常用下载程序的方法,用串口和jlink。串口下载方法和51差不多不多说,用jlink下载时接口引脚太多导致接口很大,很占pcb的面积,在此我就针对这个问题清晰的讲述下jlink下载程序时jtag接口的简化方法!希望对大家有用。! 我实验的是jlink v8和stm32f103rbt6! 如果用jtag模式下载的话,需要接:jlink的第1脚(VDD)、第3脚(TRST对应stm32的PB4)、第5脚(TDI对应stm32的PA15)、第7脚(TMS/SWDIO对应stm32的PA13)、第9脚(TCK/SWCLK对应stm32的PA14)、第13脚(TDO\SWO对应s
[单片机]
图解<font color='red'>Stm32</font>使用jlink下载程序时jtag接口(SW和JTAG模式)的简化方法
STM32日志之总结篇1--跑马灯实验
//======================================================// **基于学习STM32有一段时间了,特意写下一篇关于一个简单的跑马灯 的例程,梳理思路,也希望我自己的理解能帮到一些学习STM32的初学者 //======================================================// 首先,GPIO的配置种类有8种。分别为模拟输入、浮空输入,上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。 下面将以实例的方式讲解GPIO的设置及实现过程。 事例1:跑马灯实验 跑马灯实验的功能:LED灯进行有规律闪烁。(下面的LED灯的数
[单片机]
STM32开发笔记5: miniUART的使用方法
单片机型号:STM32F407 本文介绍miniUART的使用方法,miniUART是一组轻量型代码,可以用于完成串口接收数据功能的快速实现。其可正确对2包数据按照时间间隔进行分割,使用简单,代码可靠。 可以按照下列步骤使用mininUART. 1、打开config.h文件,按照下图所示的内容代码进行设置,设置为1表示启用miniUART。 2、打开miniUART_config.h文件,对miniUART进行配置,如下图所示。MINIUART_PERIOD是指两包数据之间的最小时间间隔,说的通俗一些如果串口接收到的2个字节之间的时间间隔小于MINIUART_PERIOD的数值,则认为该2个字节
[单片机]
<font color='red'>STM32</font>开发笔记5: miniUART的使用方法
意法STM32系列获ARM RealView微控制器开发工具包支持
ARM公司日前宣布RealView微控制器开发工具包将支持意法半导体基于ARM Cortex-M3处理器的全新STM32F1xx系列器件。 STM32F101(接入行)和STM32F103(性能行)将是意法半导体首个基于ARM Cortex-M3处理器的器件系列,兼具卓越的高性能和低功耗。该系列器件拥有高达72MHz的CPU时钟速度、128Kbyte片上闪存ROM及20Kbyte片上RAM,还包括A/D、CAN、USB、SPI、I2C等众多外设及多达80个GPIO。 RealView微控制器开发工具包3.1可为新器件提供支持。这一最新版本保留了Keil Vision 3集成开发环境(IDE)易于使用的特性,并增加了针对STM3
[单片机]
详解STM32中定时器的时钟源
STM32中有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。 定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分。 下面以定时器2~7的时钟说明这个倍频器的作用:当APB1的预分频系数为1时,这个倍频器不起作用,定时器的时钟频率等于APB1的频率;当 APB1的预分频系数为其它数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1的频率两倍。 假定AHB=36MHz,因为APB1允许的最大频率为3
[单片机]
CAN_总线_STM32 (1)
1:STM32_CAN 在STM32上,自带了基本扩展CAN外设,称bxCAN, CAN1:主bxCAN,用于管理bxCAN与512字节SRAM存储器之间的通信。 CAN2:从bxCAN,无法直接访问SRAM存储器,但两个bxCAN单元共享512字节SRAM存储器 波特率最高达1Mbps 支持时间触发通信 具有3个发送邮箱 具有3级深度的2个接受FIFO 可变的筛选器组(也称过滤器组,最多28个) bxCAN有三种主要的工作模式:初始化、正常、睡眠,还有测试模式和调试模式,具体看数据手册 2:bx_CAN控制器框图 筛选器组,可以设置你需要的数据,不需要的就不接受,就是为降低CPU处理CAN通信的开销。具体怎么使用的,
[单片机]
CAN_总线_<font color='red'>STM32</font> (1)
基于STM32的物联网环境监测系统
本应用笔记以STM32单片机作为控制和数据处理的单元,使用AHT10、BH1750和BMP280传感器去监测周围的环境参数,在LCD屏完成传感器数据和相关信息的显示。 同时,采用了无线模组与单片机之间进行数据交互。当无线通讯模组成功连接网络,并接入机智云物联网云平台时,用户可以通过登录物联网云平台后台查看传感器上报的数据和进行远程控制。 01 总体方案设计 本环境监测系统设计选取了控制和数据处理能力强的ST32单片机作为核心部件。使用温湿度传感器对周围环境中的温度与湿度监测,选取高精度的光强度传感器完成对周围环境的光照强度的测量,对于气压数据的测量,将选取高精度的气压传感器完成工作。 该系统使用液晶显示屏幕完成对
[单片机]
基于<font color='red'>STM32</font>的物联网环境监测系统
stm32学习笔记---计数器定时中断(1s)
#include tim_driver.h //tim2³õʼ»¯:1ÃëÖÓ¸üÐÂÊý¾Ý void tim2_init(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; //ʹÄÜʱÖÓ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
[单片机]
<font color='red'>stm32</font><font color='red'>学习</font>笔记---计数器定时中断(1s)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved