基于Keil uVision5和Proteus 8 Professional,led循环点亮

1.首先在D盘新建一个文件夹,我这里给他命名led点亮循环控制。

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 2.把准备好的模板复制进去

基于Keil uVision5和Proteus 8 Professional,led循环点亮

3.打开Keil uVision5

基于Keil uVision5和Proteus 8 Professional,led循环点亮

4.新建一个项目文件

基于Keil uVision5和Proteus 8 Professional,led循环点亮

5.保存路径必须在USER目录下,我这路径为D:\led点亮循环控制\工程模板\USER,给他命名为led点亮循环控制。点击保存。 

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

6.然后就会到这个界面。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

7.点击STMicroelectronics,选择STM32F103

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 选择STM32F103R6,点击OK

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 8.OK

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 9.此时右边就会出现选择好的文件

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 10.右击新建一个文件

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 11.输入代码

#include "stm32f10x.h"

uint16_t temp,i;

void Delay(unsigned int count)            //延时函数

{

    unsigned int i;

         for(;count !=0;count--)

         {

             i=800;

                  while(i--);   

         }

}

int main(void)

{

    GPIO_InitTypeDef GPIO_InitStructure;  //通用输入输出

    //使能GPIOB时钟

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

    GPIO_InitStructure.GPIO_Pin=

    GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;  //PB8-PB11引脚配置

         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP;

    GPIO_Init(GPIOB,&GPIO_InitStructure);   //初始化PB8-PB11

    while(1)

    {

          temp=0x0100;          //设置初始控制码

          for(i=0;i<4;i++)

         {

              GPIO_Write(GPIOB,~temp);   //向上GPIO口写点亮LEDDE的控制码

                   Delay(100);

                   temp=temp<<1;           //上一个控制码左移一位,获得下一个控制码

         }

     }

}

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 12.文件另存为,保存在USER目录下,我这目录为D:\led点亮循环控制\工程模板\USER,给他命名为main.c,点击保存。点击是,替换

基于Keil uVision5和Proteus 8 Professional,led循环点亮

基于Keil uVision5和Proteus 8 Professional,led循环点亮

点击是

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

此时main.c文件已经保存好了

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 13.选中Target 1,右击,选择Manage Project Items或者也可以点击上方快捷方式

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 

 14.然后就会出现这个界面。我们先把这个文件给删掉,点击×就可以了。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

15.点击方框添加文件,输入led控制循环点亮,再在空白处点一下,文件就创建好了。

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 16.点击×,把Source Group 1文件删除。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

点击方框添加文件

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 17.命名为USER,再在空白处点击确定。

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 18. 同理再分别添加CORE和STM32文件

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 19.为STM32和CORE和USERT添加我们需要的文件。点击USER选择Add Files(鼠标点不动的话可以按键盘上下键)

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 20.按住CTRL选中main.c和stm32f10x_it.c和system_stm32f10x.c,点击Add,再点击close

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 21.此时我们user需要的文件就添加进来了,再添加另外两个所需要的文件。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

22.选择core,点击Add Files,再点击箭头返回上一级目录,

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

23点击CORE

基于Keil uVision5和Proteus 8 Professional,led循环点亮

24·发现只有一个文件,这里我们把文件类型改为All Files

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 25.按住CTRL,把core_cm3.c和startup_stm32f10x_ld.s选中,点击Add,再点击close

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

此时CORE里面需要文件已经添加进去

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 26.选择STM32, 点击Add Files,再点击箭头返回上一级目录

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 点击STM32F10x_FWLib

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 点击src

基于Keil uVision5和Proteus 8 Professional,led循环点亮

按住ctrl+a全选文件,再点击add,点击close

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 此时STM32文件已经添加进去了,点击Ok

基于Keil uVision5和Proteus 8 Professional,led循环点亮

左边就是我们添加好的文件

基于Keil uVision5和Proteus 8 Professional,led循环点亮

27.Led点亮循环控制右击,或者在上方的快捷工具,点击配置。

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

然后就会到这个界面

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 28.点击Output

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 29.勾选Create HEX File(创建hex文件),再点击Select Folder for Objects(设置hex文件存放路径)

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

30.返回上一级目录

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 31再返回上一级目录

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 32.单击OBJ

基于Keil uVision5和Proteus 8 Professional,led循环点亮

点击ok

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 此时我们已经设置好了hex文件的路径,以后查看hex文件都可以在OBJ目录下查看

基于Keil uVision5和Proteus 8 Professional,led循环点亮 

 33.点击C/C++,选择编译的路径,这个很重要

基于Keil uVision5和Proteus 8 Professional,led循环点亮

在Define中填写STM32F10X_LD,USE_STDPERIPH_DRIVER

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 在include paths(设置头文件的路径),把CORE和USER和STM32F10x_FWLib\inc目录添加进去

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 在弹出来的界面点击添加文件

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 再在空白处点一下

基于Keil uVision5和Proteus 8 Professional,led循环点亮

此时CORE添加进去了,同理再添加其他两个

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 点击ok

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

此时已经添加进去了,点击ok

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 34.此时已经配置好了,注意鼠标要另外再放一行,不然编译有错误。点击编译。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 35.0错误0警告。编译完成。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

36.打开Proteus 8 Professional软件,点击文件新建工程。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 37.改名称和路径,点击下一步。

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 38.下一步

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 39.下一步

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 40.下一步

基于Keil uVision5和Proteus 8 Professional,led循环点亮

41.完成

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 41.然后就会到这个界面

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 点击P

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 然后就会出现这个界面。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 42.输入100r,选择Resistors,0.6W Metal Film,点击确定

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 此时我们的电阻已经添加了

基于Keil uVision5和Proteus 8 Professional,led循环点亮

43.同理再输入stm32,在中间找到STM32F103R6点击确定

基于Keil uVision5和Proteus 8 Professional,led循环点亮

STM32F103R6添加进去了

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 44.同理再添加一个光学的led,输入led,选择Optoelectronics,选择led-blue,点击确定。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 此时添加好了需要的元器件。现在开始画电路图。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

45.选择STM32F103R6,再在中心位置左击一下。同理再放置其他两个。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 46.要改变方向,只需要右击逆时针旋转。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 47.再在终端模式下添加两个POWER

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 此时我们已经添加好了元器件,开始连线。

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 48.D1接PB8,D2接PB9,D3接PB10,D4接PB11,左边电阻接在同一个开关下,右边开关接在NRST下。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

49.为两个开关增加3.3v电压,左击开关,输入+3.3v,点击确定

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

50.此时开关电压已经添加好了。开始准备配置供电网。

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 51.点击上方设计,点击配置供电网

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 52.选择VDDA和VSSA,点击增加到

基于Keil uVision5和Proteus 8 Professional,led循环点亮

53.点击确定

基于Keil uVision5和Proteus 8 Professional,led循环点亮

54.双击STM32F103R6

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

然后就会到这个界面。

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 55.点击文件,为电路图添加hex文件。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 56.点击工程模板。

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 57.点击OBJ

基于Keil uVision5和Proteus 8 Professional,led循环点亮

 58.选择最近时间生成的hex文件。点击打开。

基于Keil uVision5和Proteus 8 Professional,led循环点亮

59.点击确定

基于Keil uVision5和Proteus 8 Professional,led循环点亮

59.点击左下方的运行,此时led循环点亮,项目成功。

 

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

 基于Keil uVision5和Proteus 8 Professional,led循环点亮

附软件安装包和汉化包和工程模板

 链接:https://pan.baidu.com/s/18-zauIW_uneoRqQPw9_PIA 
提取码:hhhh

上一篇:PG中的几种数据类型转换方式


下一篇:flutter SnackBar异常Another exception was thrown: Scaffold.of() called with a context that does not co