STM32手把手点灯学习笔记(大疆robomasterA板)

这篇具有很好参考价值的文章主要介绍了STM32手把手点灯学习笔记(大疆robomasterA板)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先

建议大家先在b站看正点原子或者野火的stm32视频,本贴仅适用于刚刚接触stm32并且使用大疆robomasterA型开发板的同学,我会分享实现的代码和学习的方法,供大家后续学习A板时可以参考,帖主也是正在学习,欢迎大家一起讨论

此教程建立在你会使用keil5,

一:如何使用A板原理图

1.1 下载A板原理图

虽然说正点原子和野火的开发板都是stm32,芯片是一样的,但IO口和外设有一些是不一样的,所以大家需要配合robomasterA板的原理图学习

下载在链接如下:大疆A板

STM32手把手点灯学习笔记(大疆robomasterA板)

1.2 查找A板中的灯

开始学的时候看正点原子的代码点灯点不起来,后来发现这两个板子灯的位置都不一样肯定点不起来啊(悲)

首先打开原理图

第一次看,看着眼花缭乱对对吧。这时候使用Ctrl+f启用搜索,搜索led,就可以找到A板led的位置了,不仅是LED_G和LED_G(黄色标记),只要是带二极管的都可以点亮(红色圈)

STM32手把手点灯学习笔记(大疆robomasterA板)

 以LED_G为例,后面的(PF14)是GPIO14的意思,对应到点灯程序中,要开启GPIO14对应的时钟和Pin口(详情看后面的代码)

二:A板代码

led.h代码

//ifndef如果看不懂建议先看正点或者野火教程
//ifndef _LED_H
//define _LED_H
#引库我不知道有没有引多,如果发现sys没用就可以不用
#include "stm32f4xx.h" 
#include "sys.h"



//这里我参考的是野火的stm32代码,使用宏定义#define便于后期移植,当然你也可以不宏定义
//对应上图的一排的二极管,我写的是开GPIOG中1到8的Pin口
#define LED_GPIO_PIN      GPIO_Pin_8 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5| GPIO_Pin_6 | GPIO_Pin_7
#define LED_GPIO_PORT     GPIOG   
#define LED_GPIO_CLOCK    RCC_AHB1Periph_GPIOG  




//这个是在led.c文件中需要使用的Init文件,需要现在led.h中先写
void LED_Init(void);



#endif

led.c

//包含前面定义的led.h
#include "led.h"

 //Init在led.h中提过,需要在led.c中编写

//下面的内容除了注释内容外其他看不懂可以看野火的教程,其他都是一样的
void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
 
	RCC_AHB1PeriphClockCmd(LED_GPIO_CLOCK, ENABLE);//打开在led.h对应时钟

    GPIO_InitStructure.GPIO_Pin =LED_GPIO_PIN;// 打开在led.h中对应Pin口(A板led的pin口)
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;  
	GPIO_Init(LED_GPIO_PORT, &GPIO_InitStructure);
}

main.c

#include "main.h"
#include "delay.h"
#include "stdio.h"
#include "led.h"



	
	

int main(void)
{
	delay_init(168);//初始化delay,delay函数自带有
    LED_Init();//初始化LED,在led.c中写的
   while(1)
	{
        GPIO_SetBits(GPIOG,GPIO_Pin_1);//Set为高电平,在这里是关灯
		delay_ms(200);
		GPIO_ResetBits(GPIOG,GPIO_Pin_1);//Reset为高电平,在这里是关灯
		delay_ms(200);
		GPIO_SetBits(GPIOG,GPIO_Pin_2);
		delay_ms(200);
		GPIO_ResetBits(GPIOG,GPIO_Pin_2);
		delay_ms(200);
		GPIO_SetBits(GPIOG,GPIO_Pin_3);
		delay_ms(200);
		GPIO_ResetBits(GPIOG,GPIO_Pin_3);
		delay_ms(200);	
		GPIO_SetBits(GPIOG,GPIO_Pin_4);
		delay_ms(200);
		GPIO_ResetBits(GPIOG,GPIO_Pin_4);
		delay_ms(200);		
		GPIO_SetBits(GPIOG,GPIO_Pin_5);
		delay_ms(200);
		GPIO_ResetBits(GPIOG,GPIO_Pin_5);
		delay_ms(200);	
		GPIO_SetBits(GPIOG,GPIO_Pin_6);
		delay_ms(200);
		GPIO_ResetBits(GPIOG,GPIO_Pin_6);
		delay_ms(200);		
		GPIO_SetBits(GPIOG,GPIO_Pin_7);
		delay_ms(200);
		GPIO_ResetBits(GPIOG,GPIO_Pin_7);
		delay_ms(200);	
		GPIO_SetBits(GPIOG,GPIO_Pin_8);
		delay_ms(200);
		GPIO_ResetBits(GPIOG,GPIO_Pin_8);
		delay_ms(200);
	}


}

我使用的是st-link进行烧录,烧录后即可实现跑马灯效果

感觉帖子不错的话欢迎点赞噢文章来源地址https://www.toymoban.com/news/detail-402261.html

到了这里,关于STM32手把手点灯学习笔记(大疆robomasterA板)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 手把手教你写stm32f103智能风扇

    手把手教你写stm32f103智能风扇

    本系统可以分为两个模式来进行运行,分别为手动模式和自动模式,同时,在上电进入系统后,还会有一个模式选择的界面产生。 模式选择:在此界面中,可以通过按键K1来控制模式选择,两个模式分别为手动模式和自动模式;通过按键K2可以进入模式。 手动模式:在手动模

    2023年04月17日
    浏览(38)
  • 手把手带你使用VSCode 搭建 STM32开发环境!

    手把手带你使用VSCode 搭建 STM32开发环境!

    首先附上一张VS Code图一直都喜欢这种,黑色主题感觉高大上。 下载最新版VS Code: 安装好插件,具有良好的代码补全与调试功能。 “ VS Code下载地址:https://code.visualstudio.com/ ” 下载 LLVM:用于代码补全,其实可以理解为 Clang。因为VS Code 中“C/C++”插件的自动补全功能不太好

    2024年02月07日
    浏览(72)
  • 手把手教你开发stm32——看门狗(基于hal库)

    手把手教你开发stm32——看门狗(基于hal库)

    看门狗定时器(WDT,Watch Dog Timer)是单片机的组成部分,它实际上是一个计数器,一般给看门狗一个数值,程序开始运行后看门狗开始倒计时。如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始计数,也就是所谓的“喂狗”。如果看门狗减到0就认为程序没

    2024年02月17日
    浏览(11)
  • 基于STM32的最小系统电路设计(手把手零基础教学)

    基于STM32的最小系统电路设计(手把手零基础教学)

       在上篇介绍完《STM32的核心板制作流程》后,本篇我们将开始学习STM32最小系统电路的设计。具体包括 复位电路 、 晶振电路 、 电源转换电路 、 SWD下载电路 、 LED测试电路 、 芯片外扩引脚 和 STM32微控制电路 ,核心板原理图如下所示。 一个简单的复位电路图,如下所

    2024年02月03日
    浏览(9)
  • 动手实践丨手把手教你用STM32做一个智能鱼缸

    动手实践丨手把手教你用STM32做一个智能鱼缸

    摘要: 本文基于STM32单片机设计了一款基于物联网的智能鱼缸。 本文分享自华为云社区《基于STM32+华为云IOT设计的物联网鱼缸【玩转华为云】》,作者: DS小龙哥 。 为了缓解学习、生活、工作带来的压力,提升生活品质,许多人喜欢在家中、办公室等场所养鱼。为节省鱼友

    2024年01月16日
    浏览(15)
  • 手把手教你开发stm32——系统时钟(基于hal库)

    手把手教你开发stm32——系统时钟(基于hal库)

    概念: 时钟系统是由振荡器(信号源)、定时唤醒器、倍频器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。 意义: 时钟是嵌入式系统的脉搏,处理器啮合在时钟的驱动下完成指令执行,状态转换等等动作,外设部件在时钟的驱动下完成各种工作,比如串

    2024年02月06日
    浏览(10)
  • 手把手教你开发stm32——ADC(基于hal库)

    手把手教你开发stm32——ADC(基于hal库)

    ADC的概念: Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变化的模拟信号转换为离散的数字信号的期间。 ADC的作用: 采集传感器数据,测量输入电压,检查电池电量剩余,监测温湿度等。 典型的模拟数字转换器将模拟信号转换为表示一定比

    2024年02月08日
    浏览(10)
  • STM32之智能小车,手把手从0到1,模块化编程

    STM32之智能小车,手把手从0到1,模块化编程

    本博文将会从0到1实现一个智能小车,该小车实现功能:1. 摇头避障模式、2. 跟随模式、3. 循迹模式、4. 小车测速并显示在OLED屏幕、5. 语音控制小车等等。 STM32F103开发板、小车套件、L9110S电机模块、超声波模块(HC-SR04)、sg90舵机、测速模块、循迹模块、红外避障模块等等(

    2024年02月01日
    浏览(16)
  • 手把手实践丨基于STM32+NBIOT+华为云IOT设计智能井盖

    手把手实践丨基于STM32+NBIOT+华为云IOT设计智能井盖

    摘要: 本文介绍基于STM32微控制器、BC26 NBIOT模组和华为云IOT平台,实现了一款智能井盖系统。 本文分享自华为云社区《基于STM32+NBIOT+华为云IOT设计的智能井盖》,作者:DS小龙哥 。 智能井盖是一种通过物联网技术实现对井盖状态监测和管理的设备。当前介绍基于STM32微控制

    2024年02月07日
    浏览(11)
  • 手把手教你开发stm32——定时器(上)(基于hal库)

    手把手教你开发stm32——定时器(上)(基于hal库)

    定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断。 16位计数器、预分频器、自动重装载寄存器的时基单元。 不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能。 根据复杂度和引用

    2024年02月03日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包