可视化的代码跟踪调试及Proteus仿真运行stm32程序及Altium Designer绘制一个stm32最小系统

提示:本文为课程作业,存在很多不足



一、利用Vscode对c/c++可视化的代码跟踪调试


1.安装Vscode

PS:以下是我自己的安装方法,更详细的参考ubuntu18.04系统下安装vscode教程

1.在官网下载Vscode安装包

下载地址传送门

在这里插入图片描述
选择.deb用于Ubuntu

2.将下载好的安装包复制到虚拟机中

在这里插入图片描述
3.安装Vscode
输入代码(安装包的名称不同,请注意自己的安装包名称)

sudo dpkg -i code_1.51.0-1604600753_amd64.deb

在这里插入图片描述
输入code即可打开

code

4.扩展程序安装
输入code进入
在这里插入图片描述
点击左边红圈图标,输入Chinese,安装中文简体语言包
在这里插入图片描述
输入c++,安装c/c++扩展程序
在这里插入图片描述
在这里插入图片描述

2.配置调试Vscode的c/c++环境

创建test.c文件

touch test.c
gedit test.c

在这里插入图片描述

test.c代码如下:

#include<stdio.h>
int main()
{
    
      
  printf("hello world\n");
  return 0;
}

点击F5进行调试(生成launch.json,tasks.json文件)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

launch.json如下:

"version": "0.2.0",
    "configurations": [
        {
    
    
            "name": "gcc - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,   //选为true则会在打开控制台后停滞,暂时不执行程序
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,  //true为使用外部工作台,会额外打开一个终端显示程序运行结果,false使用vscode自带的工作台
            "MIMode": "gdb",
            "setupCommands": [
                {
    
    
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: gcc build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

tasks.json如下:

{
    
    
    "tasks": [
        {
    
    
            "type": "cppbuild",   //配置为cppbuild将会生成的文件放到根目录下,而改为shell会生成到当前目录下
            "label": "C/C++: gcc build active file",
            "command": "/usr/bin/gcc",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
    
    
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
    
    
                "kind": "build",
                "isDefault": true
            },
            "detail": "Generated task by Debugger"
        }
    ],
    "version": "2.0.0"
}

可以看到launch.json,tasks.json大致无需更改,如果程序需要 ,则可以将tasks.json中的cppbuild改为shell

二、Proteus仿真STM32流水灯实验例程

参考博客:1、Proteus仿真STM32流水灯实验例程、详细步骤。
1.编写代码
在这里插入图片描述
代码如下:

#include "stm32f10x.h"
GPIO_InitTypeDef GPIO_InitStructure;
void delay_ms(uint32_t ms)
	{
    
    
		uint32_t i_cnt,j_cnt;
		for(i_cnt=0;i_cnt<3000;i_cnt++);
		for(j_cnt=0;j_cnt<ms;j_cnt++);
		
	}
uint32_t i;
int main(void)
{
    
         
       
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
 
 GPIOC->BSRR=0xff;
 
  while (1)
  {
    
    
	  for(i=0;i<8;i++)
	  {
    
    
		delay_ms(99000);
		GPIOC->BRR=(1<<i);  
		  
		delay_ms(99000);
		GPIOC->BSRR=(1<<i);
	  }
	  for(i=0;i<8;i++)
	  {
    
    
		  delay_ms(99000);
		  GPIOC->BRR=0x000000ff;
		  
		  delay_ms(99000);
		  GPIOC->BSRR=0x000000ff;
		  
	  }
    
  }
}

勾选Create HEX File
在这里插入图片描述
然后运行程序即可生成HEX文件
2.创建新工程
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这里选择创建固件项目,系列选择Cortex-M3,第二个选择STM32F103R6
在这里插入图片描述
3.配置元件,画出电路图
需要三个元件,其中电阻的阻值需要重新设置,约为50欧
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
4.仿真
在这里插入图片描述
使用Altium Designer软件绘制一个stm32最小系统的电路原理图

三、使用Altium Designer软件绘制一个stm32最小系统的电路原理图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
过程图:
在这里插入图片描述

最终图如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/aiwr_/article/details/109547080