stm32嵌入式系统设计练习

本文介绍在Ubuntu16.04环境下使用VScode进行STM32嵌入式系统开发的方法,包括代码调试、编译配置、Proteus仿真等步骤,并演示如何使用Altium Designer绘制电路原理图及PCB图。
摘要由CSDN通过智能技术生成

1.可视化的代码跟踪调试

一.在Ubuntu16.04下安装VScode

①在Ubuntu桌面找到软件中心,点击打开
在这里插入图片描述
②打开后,在软件中心的搜索栏输入Visual Studio Code,出现蓝色图标的那个就是,下载安装
在这里插入图片描述
③安装完成后,ctrl+alt+t打开命令行,输入code即可打开刚才安装的VScode,接下来安装C/C++插件
在这里插入图片描述
④ctrl+p打开VScode的名两行,在上面输入ext install cpptools,或在也可以只输入ext install然后按空格,下载安装C/C++
在这里插入图片描述

二.配置调试和编译文件

首先我们在安装好了插件之后,就可以在vscode打开我们的源码文件了并且调试了,不过要注意vscode要调试的话只能打开包含源码文件的文件夹,不能打开单个文件调试。
(我在test4文件夹下创建了上次作业的c文件。)

在这里插入图片描述
打开VScode,打开我们文件地址,运行和调试程序,环境选择C++
在这里插入图片描述
调试完成后,会自动生成一个launch.json文件,
在这里插入图片描述
点击VScode的终端,配置任务,又会出现一个tasks.json文件
在这里插入图片描述
我们接下来将两个文件的代码替换
lunch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "preLaunchTask": "build",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": ["-g", "${file}", "-std=c++11", "-o", "${fileBasenameNoExtension}.out"]
        }
     ]
}

ctrl+shift+b进行编译,再点击绿色箭头运行即可。
在这里插入图片描述
运行结果
在这里插入图片描述

Proteus仿真运行stm32程序

一.创建工程

打开proteus创建一个新的项目,文件名字和存放地址自己选择
在这里插入图片描述
点击NEXT,选择第二项
在这里插入图片描述
选择不创建PCB布版设计
在这里插入图片描述
选择创建固件项目,其中:系列选择Cortex-M3,Controller选择STM32F103R6,点击下一步,然后创建成功
在这里插入图片描述

二、配置实验所需原件

1.创建项目完成后就如下图所示,显示出自己所选的型号,STM32F103R6,系统并以配置好电源。
在这里插入图片描述
2.添加实验所需灯,点击左边P,然后进入下图,在关键字中输入LED-YELLOW,并点击确认选中。
在这里插入图片描述
3.添加实验所需电阻,点击左边P,然后进入下图,在关键字中输入RES,并点击确认选中。
在这里插入图片描述
4.将灯和电阻分别添加到原理图,然后右键电阻,编辑电阻,设置其阻值为50(默认阻值过大,不更换led电流达不到,亮不起来)。
在这里插入图片描述

三、进入keil 5中选择Option for Target,然后勾选Create HEX file,生成hex文件。

打开keil创建一个新的项目,选择好自己想要的芯片,创建
在这里插入图片描述
勾选匹配
在这里插入图片描述创建源文件,代码如下

#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;
		  
	  }
    
  }
}

一定要生成hex文件,放在自己知道的地方

在这里插入图片描述

四、配置芯片

1.双击stm32f103r6芯片,然后进入Program File 选择刚才生成的hex文件,并配置Crystal Frequency改成8M(设置晶振为8M)。
在这里插入图片描述
在这里插入图片描述
点击确定,左下角三角形运行
实验结果
在这里插入图片描述

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

实验结果还在慢慢完成中…

参考:https://blog.csdn.net/weixin_46136508/article/details/105846011?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值