正点原子STM32F103学习笔记(一)

pin definitions

FT标志的IO口兼容5V
原理图上带ADC字样的IO都不兼容5V,反之兼用5V

STM32初探

VSS数字电源
VDD数字地
MDK5包下载网址:http://www.keil.com/dd2/pack

开发环境搭建

USB串口作用:

  1. 可以当串口使用。
  2. 如果USB串口连接到STM32的串口1(STM32 ISP下载只能是串口1)的话,那么可以用来串口下载程序。
  3. 因为要连接到USB,所以可以用来USB供电。

ISP串口下载

STM32下载通过串口1,对应引脚为PA9、PA10
下载方法:

  1. USB-TTL电路(CH340)(USB接电脑,TTL接PA9、PA10)
  2. 232-TTL转换电路(电脑<——DBP<——232-TTL转换电路——>PA9、PA10)
    正点原子STM32F103学习笔记(一)_第1张图片

FlyMcu配置

正点原子STM32F103学习笔记(一)_第2张图片

选择hex文件点击开始编程
对于F4板子波特率选76800

STM32启动模式

STM32直接通过两个引脚Boot0和Boot1设置启动模式
正点原子STM32F103学习笔记(一)_第3张图片

新建工程模板-基于固件库

创建步骤

STM32F10x_StdPeriph_Lib_V3.5.0

  1. 新建文件夹"Template"

  2. “Template"下新建文件夹"USER”,MDK中Project->New Uvision Project定位到USER,并选择对应开发板

  3. 在Template文件夹下新建"CORE"“OBJ”(生成的过程文件)“STM32F10x_FWLib

  4. 复制

    1. “STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver” 下"inc"“src"两个文件到"STM32F10x_FWLib
    2. “STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport” 下"core_cm3.c"“core_cm3.h"到"CORE
    3. 启动文件(大容量) “STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm"中"startup_stm32f10x_hd.s"到"CORE
    4. “STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x"下"stm32f10x.h”“system_stm32f10x.c”“system_stm32f10x.h"到"USER
    5. “STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template"下"main.c”、“stm32f10x_conf.h”、“stm32f10x_it.c”“stm32f10x_it.h"到"USER
    6. 复制"SYSTEM"到"Template"
  5. Manage Project Items 如图
    正点原子STM32F103学习笔记(一)_第4张图片

    1. "FWLib"添加"Template\STM32F10x_FWLib\src"下所有文件
    2. USER"添加三个”.c"文件
    3. CORE"添加"core_cm3.c”“startup_stm32f10x_hd.s
    4. SYSTEM"添加"delay.c”“sys.c”“usart.c
  6. 选择魔术棒,Output中勾选"Creat HEX File",Select Folder for Object选择到OBJ文件方便统一。

  7. 选头文件:选择魔术棒——>C/C++——>Include Paths——>选择"CORE"“USER”“STM32F10x_FWLib\inc”“SYSTEM\dealy”“SYSTEM\sys”“SYSTEM\usart

  8. 选择魔术棒——>C/C++——>Define中填"STM32F10X_HD,USE_STDPERIPH_DRIVER"

  9. 用以下代码替换原本"main.c"中的代码

#include "stm32f10x.h"

 void Delay(u32 count)
 {
   u32 i=0;
   for(;iPB.5 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 	 //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	 //IO口速度为50MHz
  GPIO_Init(GPIOB, &GPIO_InitStructure);			     //初始化GPIOB.5
  GPIO_SetBits(GPIOB,GPIO_Pin_5);					//PB.5 输出高
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;	            //LED1-->PE.5推挽输出
  GPIO_Init(GPIOE, &GPIO_InitStructure);	  	       //初始化GPIO
  GPIO_SetBits(GPIOE,GPIO_Pin_5); 			 //PE.5 输出高 	  
  while(1)
	{
	  GPIO_ResetBits(GPIOB,GPIO_Pin_5);
	  GPIO_SetBits(GPIOE,GPIO_Pin_5);
		Delay(3000000);
		GPIO_SetBits(GPIOB,GPIO_Pin_5);
		GPIO_ResetBits(GPIOE,GPIO_Pin_5);
		Delay(3000000);
	}
 }

程序说明

stm32f10x_it.c: 不重要,主要是一些空函数、中断服务函数
system_stm32f10x.c: 包含SystemInit系统初始化(在main函数之前初始化时钟)
core_cm3.c: 一些底层文件
FWLIB: 固件库包

新建工程模板-基于寄存器

创建步骤

  1. 新建文件夹"Template"

  2. “Template"下新建文件夹"USER”,MDK中Project->New Uvision Project定位到USER,并选择对应开发板

  3. 复制

    1. "4,程序源码\5,STM32启动文件\4,STM32启动文件"中的"startup_stm32f10x_hd.s"到"USER
    2. Manage Project Items添加"startup_stm32f10x_hd.s"到"Sourse Group 1"
  4. 新建File “test.c"到"USER

  5. Manage Project Items 添加"USER——>test.c"和"SYSTEM(从寄存器程序中复制)"
    正点原子STM32F103学习笔记(一)_第5张图片

  6. 选择魔术棒,Output中勾选"Creat HEX File",Select Folder for Object选择到OBJ文件方便统一。

  7. 选择魔术棒——>C/C++——>Define中填"STM32F10x_HD"

  8. 选头文件:选择魔术棒——>C/C++——>Include Paths——>选择"SYSTEM\dealy"“SYSTEM\sys”“SYSTEM\usart

  9. 将以下代码填入"test.c"

#include "sys.h"
#include "usart.h"		
#include "delay.h"	 
int main(void)
{				 
	u8 t=0; 
	Stm32_Clock_Init(9);	//系统时钟设置
	delay_init(72);	  		//延时初始化
	uart_init(72,115200); 	//串口初始化为115200
  	while(1)
	{
		printf("t:%d\r\n",t);
		delay_ms(500);
		t++;
	}	 
} 

你可能感兴趣的:(STM32,stm32,单片机)