stm32f103zet6 hello world

51最小系统板电路图???

stm32f103zet6 hello world_第1张图片

来源

还不会做usb-串口一键下载电路的情况下 ,如何实践?

利用已有的淘宝上买的开发板(它带有串口程序一键下载电路),把单片机插在该开发板商,用keil 将程序烧录到该单片机中。

再将该单片机拔下来插到类似上图的自制板子上,这样就可以运行程序了。

STM32F103 串口下载程序 步骤:

1. 从串口下载并启动

1.1. 设置 从系统存储器启动, 串口下载: BOOT0: 1, BOOT1: 0
1.2. MCUISP.exe :
  • 不使用RTS和DTR,
  • 勾选"编程后执行",
  • 再点击 "开始编程" ,

    右边窗口显示"开始连接..." 即MCUISP.EXE进入等待.
1.3. 按复位键,
  • 按复位键后,单片机将按 步骤1.1 的设定 来启动, 并开始和 步骤1.2 的等待中的MCUISP.exe交互

    即从串口下载程序到系统存储器 并从系统存储器启动 (相当于从串口启动).

2. 此后如何再次运行 步骤1 写入的程序?

1.4步骤或2.1步骤. 注意此时(步骤1之后)程序已经被下载到FLASH, 但是设置依然是 从串口启动.

所以如果此时直接按复位键,是不会正常启动的,因为还需要MCUISP.exe按照 步骤1.2 那样配合才行.

步骤1.3 之后 如果期望运行刚刚下载到单片的程序,则步骤应该是:

  • 改设置为: BOOT0:1、 BOOT1:任意值 :即从FLASH启动,
  • 按复位键, 即是启动刚刚写好的程序的.

BOOT0, BOOT1 参见下图红框:
stm32f103zet6 hello world_第2张图片

51单片机串口下载程序例子

1. stc89c52RC ok例子

stm32f103zet6 hello world_第3张图片

stc-isp软件窗口中打印的日志如下:
正在检测目标单片机 ... 
  单片机型号: STC89C52RC/LE52RC
  固件版本号: 6.6.4C

当前芯片的硬件选项为:
  . 当前的时钟频率: 11.030MHz
  . 系统频率为12T(单倍速)模式
  . 振荡器放大增益使能
  . 当看门狗启动后,任何复位都可停止看门狗
  . MCU内部的扩展RAM可用
  . ALE脚的功能选择仍然为ALE功能脚
  . P1.0和P1.1与下次下载无关
  . 下次下载用户程序时,不擦除用户EEPROM区

  单片机型号: STC89C52RC/LE52RC
  固件版本号: 6.6.4C


正在重新握手 ... 成功            [0.594"]
当前的波特率: 115200
正在擦除目标区域 ... 完成 !        [0.312"]
正在下载用户代码 ... 完成 !        [0.672"]
正在设置硬件选项 ... 完成 !        [0.047"]

更新后的硬件选项为:
  . 当前的时钟频率: 11.030MHz
  . 系统频率为12T(单倍速)模式
  . 振荡器放大增益使能
  . 当看门狗启动后,任何复位都可停止看门狗
  . MCU内部的扩展RAM可用
  . ALE脚的功能选择仍然为ALE功能脚
  . P1.0和P1.1与下次下载无关
  . 下次下载用户程序时,不擦除用户EEPROM区

  单片机型号: STC89C52RC/LE52RC
  固件版本号: 6.6.4C


操作成功 !(2021-12-06 00:09:34)
1.2 例子程序及开发ide
1.2.1 开发ide

keil5-c51

破解工具: 百度网盘 搜索: keil_keygen(2032).zip , 注意此文件可能带毒,要在vm中运行获得序列号即可。
1.2.2 例子程序
#include "reg52.h"

sbit LED1=P1^0;    

void delay_tmp(){
    int i ;
    for(i =0; i <10000; i++);
}
void main()
{
    LED1=0;
    while(1)
    {
        delay_tmp();//拿cpu空跑当延时
        LED1=!LED1;
    }        
}

2. 自己做最小51单片机开发板思路

再买一个 步骤1 中的开发板, 确定其正常 , 对其做减法(用烙铁拆除所有无关部件),确保每一步后 其 依然正常,直到只剩下最小系统所需部件,即获得了最小51单片机开发板。

你可能感兴趣的:(嵌入式单片机)