系列文章目录

STM32F103ZE学习记录:主要参考正点原子教程


文章目录

  • 系列文章目录
  • 前言
  • 一、环境的搭建
    • 1.新建编程文件操作步骤
    • 2.ST_LINK烧录搭建
    • 3.STlink下载出现st-link usb communication error解决方法
  • 二、LED跑马灯程序
    • 1.LED.c程序
    • 2.LED.h程序
    • 3...\harwred\led\led.h(7): warning: #1-d: last line of file ends without a newline
    • 4.main.c程序
    • 5.最后进行STLINK的下载
  • 实验现象

前言

这篇笔记主要是介绍一下使用ST_SLINK进行烧录点亮LED灯程序,以及我遇到的一些问题,


一、环境的搭建

1.新建编程文件操作步骤

1.1在以搭建好的工程文件中,新建外设文件夹


1.2在工程文件夹中,添加路径


1.3建立<.c>和<.h>文件


1.4将<.c>文件添加到文件夹中



<.h>同样的操作步骤

2.ST_LINK烧录搭建

2.1点击魔术棒




但是我在使用STLINK下载时出现了问题

3.STlink下载出现st-link usb communication error解决方法

解决方法就是进行固件升级

点击ST-LinkUpgrade.exe,打开st-link upgrade软件进行固件升级

插上st-link固件到电脑,点击Device Connect按钮,连接st-link

千万不要将USB接口拔掉,否则会导致升级失败


若出现如下报错,则可尝试重新插拔st-link固件,或者换一个usb接口进行连接

连接成功!如下图,可以看到当前固件版本以及即将升级的版本,点击yes进行升级

更新驱动

已管理员身份运行D:\MDKkeil5\ARM\STLink\USBDriver\stlink_winusb_install.bat文件,进行驱动更新

点击下一步,直至完成。
问题就轻松加愉快的解决了!

二、LED跑马灯程序

STM32与51单片机确实不同,STM32要比51更高级;
STM32程序直接调用库函数,比51要方便很多,STM32的寄存器很多,功能也比51要更加强大。
*操作步骤 借鉴正点原子PPT

实际上也是对寄存器进行操作。

1.LED.c程序

用到的重要函数 *借鉴正点原子PPT

代码如下(所示):

#include "led.h"
#include "stm32f10x.h"
void LED_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能GPIOB的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//使能GPIOE的时钟GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//选择推挽是因为可以直接输出高电平GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;//选择GPIOB5GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//输出速度是50MGPIO_Init(GPIOB,&GPIO_InitStruct);//GPIOB5初始化GPIO_SetBits(GPIOB,GPIO_Pin_5);//对GPIOB5设置高电平GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//选择推挽是因为可以直接输出高电平GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;//选择GPIOB5GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//输出速度是50MGPIO_Init(GPIOE,&GPIO_InitStruct);//GPIOE5初始化GPIO_SetBits(GPIOE,GPIO_Pin_5);//对GPIOE5设置高电平
}

2.LED.h程序

代码如下(所示):

#ifndef __led_H
#define __led_H
void LED_Init(void);#endif

在这里我遇到了一个警告,很有意思啊

3…\harwred\led\led.h(7): warning: #1-d: last line of file ends without a newline

这可能是MDK开发人员留的一个小彩蛋,就是最后一行代码,必须回车才可以,感觉那个人一定有强迫症。

4.main.c程序

进行函数的调用就可以了

代码如下(所示):

#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
int main(void)
{LED_Init();//进行LED初始化的调用delay_init();//进行延时函数初始化的调用while(1){GPIO_SetBits(GPIOB,GPIO_Pin_5);//对GPIOB5设置高电平delay_ms(500);//延时500毫秒GPIO_ResetBits(GPIOB,GPIO_Pin_5);//对GPIOB5设置低电平delay_ms(500);//延时500毫秒GPIO_SetBits(GPIOE,GPIO_Pin_5);//对GPIOE5设置高电平delay_ms(500);//延时500毫秒
//                  GPIO_ResetBits(GPIOB,GPIO_Pin_5);//对GPIOB5设置低电平GPIO_ResetBits(GPIOE,GPIO_Pin_5);//对GPIOE5设置低电平delay_ms(500);//延时500毫秒}
}

5.最后进行STLINK的下载


实验现象

STM32LED灯闪烁

STM32如何使用STLINK下载程序:点亮LED跑马灯(库版本)相关推荐

  1. 用linux写跑马灯程序,Linux下LED跑马灯驱动

    一.驱动程序代码: #include #include #include #include #include #include #include #include #include #include ...

  2. 编写linux下跑马灯应用程序,01 arm11 led 跑马灯程序

    .text .globl _start _start: ldr r0, =0x70000000 orr r0, r0, #0x13 mcr p15, 0, r0, c15, c2, 4 ldr r0, ...

  3. 阿里云python轻应用学习笔记(二)---开发一个LED跑马灯程序

    摘要:本篇文章将使用python开发一个LED闪烁的程序.程序源代码从官方帮助文档复制过来,开发的时候会遇到一些错误,本篇文章也一并提供解决方法. 实验目的:编写python程序,实现LED跑马灯. ...

  4. ST-LINK下载程序出现flash download failed - ‘cortex m4‘

    ST-LINK下载程序出现flash download failed - 'cortex m4' 可能原因:项目测试时使用ST-link下载程序调试,之前都好好的可以下载程序,之后可能做掉电存储等一些 ...

  5. STM32f103调试笔记(2)——使用ST-LINK下载程序的时候,不按住复位键无法下载?

    这也是很常遇见的一个问题了.使用ST-Link下载程序的时候,总是显示无法识别设备,查阅了网上的解决方法,只要按住复位键,然后点击LOAD以后迅速松开复位键就可以了.这也是一种方法啦,但是每次都要按一 ...

  6. Keil5 MDK版本使用ST-LINK下载程序的方法及注意事项

    1.进入Keil软件打开魔法棒 2.进入调试选项页面 按照下图所示顺序选择好ST-Link Debugger后进入Settings 3.进入Settings后,在Debug选项卡里选择sw模式 完成以 ...

  7. st-link下载程序配置时点击setting程序闪退

    之前一直用串口下载程序到stm32c8t6中,今天换了个板子,使用st-link下载程序,按照网上的步骤配置时,点击setting后软件就闪退,通过网上查找资料后解决方法就是将工程程序中与工程名相同的 ...

  8. 单片机第一个程序----点亮LED灯

    单片机第一个程序----点亮LED灯 准备: 安装Keil软件 软件官网 单片机实验板(某宝可以买到) 简单的C语言编程能力 单片机C语言教程 简单介绍下keil软件的使用方法: 第一步:新建工程,这 ...

  9. 手机屏大字滚动_LED跑马灯屏-LED跑马灯屏App下载-

    LED跑马灯屏软件是一款模拟LED显示屏应用软件,LED跑马灯软件可轻易实现发光LED跑马灯,使用这款LED跑马灯软件可以随你喜欢自行定义滚动的文字和文字样式. LED跑马灯软件是演唱会电子灯牌.机场 ...

最新文章

  1. 寒冰linux视频教程笔记5 过滤器、输入输出及管道
  2. handle句柄 matlab_学习随笔之Matlab句柄对象深拷贝方法
  3. [Golang学习笔记] 05 程序实体2 作用域访问权限和变量重声明
  4. 算法每日学打卡:java语言基础题目打卡(01-10)
  5. Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
  6. hashmap 扩容是元素还是数组_曹工说JDK源码(1)--ConcurrentHashMap,扩容前大家同在一个哈希桶,为啥扩容后,你去新数组的高位,我只能去低位?...
  7. idea IDE 常用快捷键记录
  8. 设计模式笔记十五:命令模式
  9. 关于StringIndexOutOfBoundsException那些事~
  10. 64位 int 占几个字节_面试常考,项目易错,长文详解C/C++中的字节对齐
  11. local host 和 IP 相关的配置文件。
  12. 【Proteus仿真8086实验一】RAM存储器62256
  13. java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件
  14. 《失业的程序员》(十五):商业头脑
  15. dockerexec 的使用-it操作
  16. 钱多多的高并发TCP服务器的开发经历
  17. 简述对linux系统的认识,对Linux的初步认识
  18. 什么是后端?后台?别傻傻的分不清
  19. delphi中字符串拼接_Delphi中的字符串类型(Delphi适用于初学者)
  20. Redis-事件机制详解

热门文章

  1. 小米手机开发版如何获得ROOT权限
  2. 我的世界服务器组件怎么用,我的世界服务器怎么加插件
  3. 【转】Android ImageView圆形头像
  4. Word2016多行公式在等号处对齐、自动编号和引用、公式居中且编号右对齐
  5. 在Ubuntu18.04系统安装ROS Melodic以及问题解决方案
  6. Greenplum【部署 07】6.19.0详细安装步骤libnsl/libcrypto/libssl/libreadline No such file or directory 问题解决
  7. c语言求sin泰勒级数展开,求正弦函数泰勒展开的C语言算法
  8. 基坑计算理论m法弹性支点法_深基坑支护结构分析—弹性支点法.pdf
  9. VMWare虚拟机Bridged类型网卡ping不通的原因和解决办法
  10. linux修改程序依赖lib,修改so库中的依赖名