提示:本文为课程作业,存在很多不足
文章目录
一、利用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最小系统的电路原理图
过程图:
最终图如下: