STM32F103ZET6+新建工程+点灯实验

目前,ST公司已经停止标准外设库的更新,转而推广HAL库和LL库。HAL库是由标准外设库升级而来的,学习标准外设库有助于对HAL库的理解,接下来我就简单介绍一下标准外设库的开发。

为了方便我准备了一个标准外设库的空工程模板,大家可以使用这个模板进行开发。空工程模板下载链接 STM32F103ZET6

下载空工程后,解压打开如下图所示

打开工程后,打开main.c文件如下图所示

接下来将带你进行ST32的世界,走进单片机的第一步就是点灯,就好像刚学C语言的时候,输出Hello World一样。

为了规范,先在工程文件中,新建一个文件,命名为BSP(或者叫其它的名字也行),主要是为了存放我们自己编写的一些模块

之后,在BSP的目录下,新建我们自己的第一个模块LED

回到工程,点击左上角的文件图标,或者按ctrl+N,新建一个文档

复制以下的代码,学过C语言的应该都看得懂

#ifndef __LED_H
#define __LED_H#include "stm32f10x.h"void LED_Init(void); //初始化#endif

复制代码之后,点击左上角的保存图标,或者按ctrl+S,保存文件,会弹出一个窗口,找到你的工程文件在哪,并且找到BSP目录下的LED

将文件保存在LED目录下,并且命名为led.h,点击保存即可

接着重复刚才新建文档的操作,再新建一个led.c的文档,步骤如下

点击新建

复制以下代码,可以不用管以下代码,之后我会解释

#include "led.h"void LED_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;                  //定义一个GPIO_InitTypeDef类型的结构体变量RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);  //开启GPIOB的时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;             //选择要使用的I/O引脚,此处选择PB5引脚GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      //设置引脚输出模式为推挽输出模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     //设置引脚的输出速度为50MHzGPIO_Init(GPIOB,&GPIO_InitStructure);                 //调用初始化库函数初始化GPIOB端口}

点击保存,找到路径,命名,保存

回到主函数复制以下代码

#include "stm32f10x.h"
#include "delay.h"
#include "led.h"int main(void)
{delay_init();LED_Init();while(1){GPIO_SetBits(GPIOB,GPIO_Pin_5);// PB5设置位1,LED灯灭delay_ms(1000);  //延时1000msGPIO_ResetBits(GPIOB,GPIO_Pin_5); // PB5设置位0,LED灯亮delay_ms(1000); //延时1000ms}}

现在我们已经把所有的代码都弄好了,只剩下最后一步了
我们是已经把文档代码都写好了,但工程是不会知道你的代码在哪里的,所以我们得把文件引进来

点击代码正上方的魔术棒,接着会弹出一个窗口
注意:点击Output,查看Create HEX File是否勾上,这个选项的作用是在编译代码时,会生成.hex后缀的工程文件,这也是我们下载到单片机上的文件

接着点击C/C++,找到IncludePaths,点击三点框

接着弹出一个窗口,这里就是所有文件的路径,我们点击右上角的虚框,下面就会出现一个框,在框的旁边有一个三点框,点击三点框

点击三点框后,会弹出一个窗口,在里面找到我们的工程,接着找到我们添加的LED模块的路径,点击确认

之后我们可以看到,我们添加的LED模块的路径已经添加进来了,如果你还有其它模块,再点击虚框就可以了,接着点击OK

别忘了,后面还有一个OK哦

现在文件的路径已经添加进来了,接下来把文件添加进来就行了
如图点击三个正方形,会弹出一个窗口,这里就是工程所包含的所有文件

点击虚框,下面会出现一个输入框,输入一个文件名名,该名字是添加到工程的文件名,最好是见名知义的

接着点击Add Files

弹出一个窗口,选择你的工程,之后选择你要添加的文件

找到你要添加的文件,只需要将.c文件添加进来就行了,.h文件在编译时,工程会自动帮你找到的

在最右边的方框内我们可以看到我们添加进来的文件,最后点击OK就行了

在我们的工程,我们可以看到添加进来的文件

最后所有的工作都弄好了,点击左上角的编译

编译成功后,如果你看到没有错误的话,恭喜你,你成功了,你进行踏进硬件这个坑了
如果有警告的话,是没事的,只要不出错就行了

最后我们把工程烧写到单片机上看看效果,如果你看到单片机在闪光,证明你点亮了你胜利之光,祝贺你

下一篇简单介绍一下,GPIO引脚口的原理~~~

STM32F103ZET6+新建工程+点灯实验相关推荐

  1. 【STM32+机智云】机智云手机APP点灯实验踩坑记录

    [STM32+机智云]机智云手机APP点灯实验踩坑记录 一.实验背景 因为项目开发需要用到云平台,所以开始学习机智云平台,听说机智云比较容易入门,还有手机APP.因此开始了踩坑之旅,一切的一切开始于一 ...

  2. STM32使用寄存器点灯实验

    寄存器点灯实验 操作过程 使能IO口时钟配置寄存器RCC_APB2ENR 初始化IO口模式,配置寄存器GPIOx_CRH/CRL 操作IO口,输出高低电平,配置寄存器GPIOx_ODR或者BSRR/B ...

  3. rv-star开发板点灯实验

    前言 社区已经有很多大神在写rv-star开发板的入门手册,估计也有很多人已经玩过这个板子了,我今天来讲一讲怎么用Nuclei Studio快速进行rv-star开发板的点灯实验 1.下载Nuclei ...

  4. 基于STM32F103ZET6库函数串口实验

    基于STM32F103ZET6库函数串口实验 本次实验实现如下功能 串口设置的一般步骤可以总结为如下几个步骤 与串口基本配置直接相关的几个固件库函数 1.串口时钟使能. 2.串口复位. 3.串口参数初 ...

  5. CC2530无线点灯实验

    1.下载工程 cc2530实验工程下载链接 2.烧写无线发送代码 打开 无线点灯–>无线TX–>CC2530 BasicRF–>CC2530 BasicRF–>ide–> ...

  6. 用米思齐+点灯科技——ESP32点灯实验

    前言 其实在学习单片机的道路上我发现,所有单片机的功能都是基于通过内部程序控制对输出引脚进行配置实现的.这样说来,一切都可以看作是对"点灯"这一实践的延伸.我们常说"点灯 ...

  7. Arduino 点灯实验

    目录 1.实验说明 2.实验原理 3.接线图 4.实验代码 5.代码说明 6.测试结果 1.实验说明 LED模块:它的控制方法非常简单,要想点亮LED,只要让它两端有一定的电压就可以. 实验中,我们通 ...

  8. STM32使用库函数点灯实验

    GPIO库函数介绍 重要函数: 1个初始化函数:void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);2个读取输 ...

  9. 第五章 国产MCU 雅特力AT32F403A 基于v2库的点灯实验,位带操作控制,库函数控制

    目录 概述 硬件 软件 初始化gpio 相关代码: 库函数操作 相关代码: 位带操作 相关代码: 最后 概述 本文主要是使用AT32F403A开发板,基于V2库的点灯程序. 工程建立.调试工具配置在前 ...

最新文章

  1. 一句话介绍区块链是什么
  2. 超时锁定计算机,就会发现多了一个控制台锁定显示关闭超时选项
  3. android 语音助手官网,breeno语音助手最新版
  4. java jaxb xml
  5. python三方库之paramiko
  6. BOOST 升压电路调试笔记
  7. 大规模额外涨薪后,Intel又准备了24亿美元,明年再涨工资!
  8. 计算机专业考研2021,2021考研:计算机专业考研方向有哪些?
  9. Leaflet地图框架使用手册
  10. efishell无法开机shell_efi shell 添加启动项 修复启动
  11. C++调用Python及间接调用Python三方库
  12. SrpingCloud微服务 服务调用逻辑图
  13. 滤波反投影重建算法(FBP)实现及应用(matlab)
  14. 如何修复网页被劫持、页面劫持的解决方法、详细
  15. Android一个类似腾讯 QQ 背景图片可以上下左右移动的 imageview
  16. java中数组下标越界的异常_java新手求助 数组下标越界异常
  17. Hadoop、Pig、Hive、Storm、NOSQL 学习资源收集【Updating】
  18. 联通云图片上传官方文档
  19. python 无人机、飞机轨迹(含姿态角)可视化方法
  20. SSM+Vue+Element-UI实现网上跳蚤市场

热门文章

  1. 关于C语言实现凯撒加密算法
  2. 《VLAN中所使用ARP代理命令介绍》
  3. 网络协议02 - Mac地址和IP地址
  4. 哆啦A梦主题网站(HTML5+CSS3+Javascript)
  5. 2022 China Collegiate Programming Contest (CCPC) Guilin Site - C. Array Concatenation
  6. 高德地图货车路径规划JS API以及WEB API在VUE中使用方法
  7. 【重要】2019年美赛(MCM/ICM)的参赛建议
  8. 将移动市场细分将移动市场细分
  9. 基于Matlab的循环码实验报告,基于matlab的循环码实验报告.doc
  10. 腾讯云运维考试题及答案