生活随笔
收集整理的這篇文章主要介紹了
正点原子STM32F103学习笔记(一)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
pin definitions
FT標(biāo)志的IO口兼容5V
原理圖上帶ADC字樣的IO都不兼容5V,反之兼用5V
STM32初探
VSS數(shù)字電源
VDD數(shù)字地
MDK5包下載網(wǎng)址:http://www.keil.com/dd2/pack
開發(fā)環(huán)境搭建
USB串口作用:
可以當(dāng)串口使用。如果USB串口連接到STM32的串口1(STM32 ISP下載只能是串口1)的話,那么可以用來串口下載程序。因為要連接到USB,所以可以用來USB供電。
ISP串口下載
STM32下載通過串口1,對應(yīng)引腳為PA9、PA10
下載方法:
USB-TTL電路(CH340)(USB接電腦,TTL接PA9、PA10)232-TTL轉(zhuǎn)換電路(電腦<——DBP<——232-TTL轉(zhuǎn)換電路——>PA9、PA10)
FlyMcu配置
選擇hex文件點擊開始編程
對于F4板子波特率選76800
STM32啟動模式
STM32直接通過兩個引腳Boot0和Boot1設(shè)置啟動模式
新建工程模板-基于固件庫
創(chuàng)建步驟
STM32F10x_StdPeriph_Lib_V3.5.0
新建文件夾"Template"
“Template"下新建文件夾"USER”,MDK中Project->New Uvision Project定位到USER,并選擇對應(yīng)開發(fā)板
在Template文件夾下新建"CORE"“OBJ”(生成的過程文件)“STM32F10x_FWLib”
復(fù)制
“STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver” 下"inc"“src"兩個文件到"STM32F10x_FWLib”“STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport” 下"core_cm3.c"“core_cm3.h"到"CORE”啟動文件(大容量) “STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm"中"startup_stm32f10x_hd.s"到"CORE”“STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x"下"stm32f10x.h”“system_stm32f10x.c”“system_stm32f10x.h"到"USER”“STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template"下"main.c”、“stm32f10x_conf.h”、“stm32f10x_it.c”“stm32f10x_it.h"到"USER”復(fù)制"SYSTEM"到"Template" Manage Project Items 如圖
"FWLib"添加"Template\STM32F10x_FWLib\src"下所有文件“USER"添加三個”.c"文件“CORE"添加"core_cm3.c”“startup_stm32f10x_hd.s”“SYSTEM"添加"delay.c”“sys.c”“usart.c” 選擇魔術(shù)棒,Output中勾選"Creat HEX File",Select Folder for Object選擇到OBJ文件方便統(tǒng)一。
選頭文件:選擇魔術(shù)棒——>C/C++——>Include Paths——>選擇"CORE"“USER”“STM32F10x_FWLib\inc”“SYSTEM\dealy”“SYSTEM\sys”“SYSTEM\usart”
選擇魔術(shù)棒——>C/C++——>Define中填"STM32F10X_HD,USE_STDPERIPH_DRIVER"
用以下代碼替換原本"main.c"中的代碼
#include "stm32f10x.h"void Delay(u32 count){u32 i=0;for(;i<count;i++);}int main(void){ GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //使能PB,PE端口時鐘GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度為50MHzGPIO_Init(GPIOB, &GPIO_InitStructure); //初始化GPIOB.5GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 輸出高GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1-->PE.5推挽輸出GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化GPIOGPIO_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: 不重要,主要是一些空函數(shù)、中斷服務(wù)函數(shù)
system_stm32f10x.c: 包含SystemInit系統(tǒng)初始化(在main函數(shù)之前初始化時鐘)
core_cm3.c: 一些底層文件
FWLIB: 固件庫包
新建工程模板-基于寄存器
創(chuàng)建步驟
新建文件夾"Template"
“Template"下新建文件夾"USER”,MDK中Project->New Uvision Project定位到USER,并選擇對應(yīng)開發(fā)板
復(fù)制
"4,程序源碼\5,STM32啟動文件\4,STM32啟動文件"中的"startup_stm32f10x_hd.s"到"USERManage Project Items添加"startup_stm32f10x_hd.s"到"Sourse Group 1" 新建File “test.c"到"USER”
Manage Project Items 添加"USER——>test.c"和"SYSTEM(從寄存器程序中復(fù)制)"
選擇魔術(shù)棒,Output中勾選"Creat HEX File",Select Folder for Object選擇到OBJ文件方便統(tǒng)一。
選擇魔術(shù)棒——>C/C++——>Define中填"STM32F10x_HD"
選頭文件:選擇魔術(shù)棒——>C/C++——>Include Paths——>選擇"SYSTEM\dealy"“SYSTEM\sys”“SYSTEM\usart”
將以下代碼填入"test.c"
#include "sys.h"
#include "usart.h"
#include "delay.h"
int main(void)
{ u8 t=0; Stm32_Clock_Init(9); //系統(tǒng)時鐘設(shè)置delay_init(72); //延時初始化uart_init(72,115200); //串口初始化為115200while(1){printf("t:%d\r\n",t);delay_ms(500);t++;}
}
總結(jié)
以上是生活随笔為你收集整理的正点原子STM32F103学习笔记(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。