当前位置:网站首页>STM32如何使用STLINK下载程序:点亮LED跑马灯(库版本)
STM32如何使用STLINK下载程序:点亮LED跑马灯(库版本)
2022-07-06 09:25:00 【Bitter tea seeds】
系列文章目录
STM32F103ZE学习记录:主要参考正点原子教程
文章目录
前言
这篇笔记主要是介绍一下使用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;//选择GPIOB5
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//输出速度是50M
GPIO_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;//选择GPIOB5
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//输出速度是50M
GPIO_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灯闪烁
边栏推荐
- 学习记录:USART—串口通讯
- csapp shell lab
- Example 071 simulates a vending machine, designs a program of the vending machine, runs the program, prompts the user, enters the options to be selected, and prompts the selected content after the use
- 全网最详细的postman接口测试教程,一篇文章满足你
- C4D quick start tutorial - creating models
- ucore lab7
- Mysql database (V) views, stored procedures and triggers
- Eigen User Guide (Introduction)
- CSAPP shell lab experiment report
- LeetCode#118. Yanghui triangle
猜你喜欢
The maximum number of words in the sentence of leetcode simple question
Take you to use wxpy to create your own chat robot (plus wechat interface basic data visualization)
CSAPP shell lab experiment report
学习记录:USART—串口通讯
The most detailed postman interface test tutorial in the whole network. An article meets your needs
Portapack application development tutorial (XVII) nRF24L01 launch B
软件测试有哪些常用的SQL语句?
How to do agile testing in automated testing?
Eigen User Guide (Introduction)
MATLAB实例:阶跃函数的两种表达方式
随机推荐
Brief introduction to libevent
Market trend report, technical innovation and market forecast of Chinese hospital respiratory humidification equipment
ucore lab5
学习记录:如何进行PWM 输出
Mysql database (IV) transactions and functions
[200 opencv routines] 98 Statistical sorting filter
Winter vacation daily question - maximum number of balloons
JS --- BOM details of JS (V)
学习记录:使用STM32F1看门狗
Crawler series of learning while tapping (3): URL de duplication strategy and Implementation
JS --- JS function and scope (II)
MySQL transactions
ucore lab7
LeetCode#198. raid homes and plunder houses
Mysql database (III) advanced data query statement
ArrayList set
学习记录:STM32F103 时钟系统概述工作原理
Automated testing problems you must understand, boutique summary
软件测试方法有哪些?带你看点不一样的东西
How to become a good software tester? A secret that most people don't know