日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正点原子STM32F103学习笔记(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pin definitions

FT標志的IO口兼容5V
原理圖上帶ADC字樣的IO都不兼容5V,反之兼用5V

STM32初探

VSS數字電源
VDD數字地
MDK5包下載網址:http://www.keil.com/dd2/pack

開發環境搭建

USB串口作用:

  • 可以當串口使用。
  • 如果USB串口連接到STM32的串口1(STM32 ISP下載只能是串口1)的話,那么可以用來串口下載程序。
  • 因為要連接到USB,所以可以用來USB供電。
  • ISP串口下載

    STM32下載通過串口1,對應引腳為PA9、PA10
    下載方法:

  • USB-TTL電路(CH340)(USB接電腦,TTL接PA9、PA10)
  • 232-TTL轉換電路(電腦<——DBP<——232-TTL轉換電路——>PA9、PA10)
  • FlyMcu配置

    選擇hex文件點擊開始編程
    對于F4板子波特率選76800

    STM32啟動模式

    STM32直接通過兩個引腳Boot0和Boot1設置啟動模式

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

    創建步驟

    STM32F10x_StdPeriph_Lib_V3.5.0

  • 新建文件夾"Template"

  • “Template"下新建文件夾"USER”,MDK中Project->New Uvision Project定位到USER,并選擇對應開發板

  • 在Template文件夾下新建"CORE"“OBJ”(生成的過程文件)“STM32F10x_FWLib

  • 復制

  • “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
  • 復制"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
  • 選擇魔術棒,Output中勾選"Creat HEX File",Select Folder for Object選擇到OBJ文件方便統一。

  • 選頭文件:選擇魔術棒——>C/C++——>Include Paths——>選擇"CORE"“USER”“STM32F10x_FWLib\inc”“SYSTEM\dealy”“SYSTEM\sys”“SYSTEM\usart

  • 選擇魔術棒——>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: 不重要,主要是一些空函數、中斷服務函數
    system_stm32f10x.c: 包含SystemInit系統初始化(在main函數之前初始化時鐘)
    core_cm3.c: 一些底層文件
    FWLIB: 固件庫包

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

    創建步驟

  • 新建文件夾"Template"

  • “Template"下新建文件夾"USER”,MDK中Project->New Uvision Project定位到USER,并選擇對應開發板

  • 復制

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

  • Manage Project Items 添加"USER——>test.c"和"SYSTEM(從寄存器程序中復制)"

  • 選擇魔術棒,Output中勾選"Creat HEX File",Select Folder for Object選擇到OBJ文件方便統一。

  • 選擇魔術棒——>C/C++——>Define中填"STM32F10x_HD"

  • 選頭文件:選擇魔術棒——>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); //系統時鐘設置delay_init(72); //延時初始化uart_init(72,115200); //串口初始化為115200while(1){printf("t:%d\r\n",t);delay_ms(500);t++;} }

    總結

    以上是生活随笔為你收集整理的正点原子STM32F103学习笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。