STM系统应用设计

2024-05-01 06:08
文章标签 设计 系统 应用 stm

本文主要是介绍STM系统应用设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

STM系统应用设计

  • 可视化的代码跟踪调试。
  • Proteus仿真运行stm32程序

可视化的代码跟踪调试。

上一次在终端使用gdb调试了程序,这次采用可视化的软件来调试

可视化前端 Kdbg。 参考网址

可视化前端 Insight。有点older,不推荐。参考网址

基于跨平台多类型代码编辑器VScode。 强烈推荐。
参考网址一.
参考网址二
参考网址三

示例代码:

#include <stdio.h>
void ShowRevertNum(int iNum)
{while(iNum>10){printf("%d",iNum % 10);iNum = iNum /10;}printf("%d\n",iNum);
}
int main(void)
{int iNum;printf("Please input a number:");scanf("%d",&iNum);printf("After revert:");ShowRevertNum(iNum);
}

这个程序是输出倒序数,编译没有问题,但是输入100的时候,输出为010,下面开始调试看看是哪里出现了问题

设置断点

在这里插入图片描述
F5调试并输入100:
在这里插入图片描述

进入了函数,继续F5调试:
在这里插入图片描述
连续F5了三次,这个循环已经循环了一次,应该输出了0
继续F5:
在这里插入图片描述
F5后发现,程序没有再次经过

       printf("%d",iNum % 10);iNum = iNum /10;

程序推出了循环,在看看上一次循环完成后,iNum已经除10取余了,iNum=10;现在iNum>10不成立,循环终止,并输出iNum;所以结果输出了010。
那么问题很明显了,循环判断语句iNum>10不适用,我们将它改为iNum>=10就好了。

Proteus仿真运行stm32程序

用Proteus建立一个新的工程
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
点击P输入LED-“你想要的颜色”

在这里插入图片描述
比如输入LED-YELLOW找到黄色的灯
在这里插入图片描述
输入RES找到一个负载
在这里插入图片描述

连接引线
在这里插入图片描述

这篇关于STM系统应用设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/950886

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和