目錄
一、打開GPIO口的時鐘
二、準備作業
三、部分代碼展示
????????
1.設定PA1、PA2、PA3為輸出
2.初始化GPIO為高電平,高電平的時候,LED滅
3.流水燈代碼具體實作
三、實際效果
四、總結
???????
??????
???????
一、打開GPIO口的時鐘
因為我是用的芯片是STM32F103C8T6,所以選擇的是GPOA,GPIOB,GPIOC這三個埠,
首先,我們要通過查表來得到所使用的GPIO的地址和時鐘的地址


二、準備作業
面包板、芯片、LED燈等工具如下

打開Keil uVision5,建立新工程(如對建立新工程不懂,請移步[入門級]Keil環境下創建STM32匯編語言程式并分析HEX檔案_afadgfansfa的博客-CSDN博客)
并且這次的建工程中,根據個人芯片型別選擇,本人選擇STM32F103C8
然后這個界面不做勾選

三、部分代碼展示

???????

代碼解釋:
1.設定PA1、PA2、PA3為輸出
GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);
2.初始化GPIO為高電平,高電平的時候,LED滅
GPIO_SetBits(GPIOA,GPIO_Pin_1); GPIO_SetBits(GPIOA,GPIO_Pin_2); GPIO_SetBits(GPIOA,GPIO_Pin_3);
3.流水燈代碼具體實作
GPIO_SetBits(GPIOA,GPIO_Pin_1); GPIO_SetBits(GPIOA,GPIO_Pin_2); GPIO_SetBits(GPIOA,GPIO_Pin_3); ```3. 流水燈代碼具體實作```#include "stm32f10x.h" void Delay(u32 count) { u32 i=0; for(;i
本次代碼借鑒野火官方代碼,
三、實際效果
運行實際連線如下:
???????
上電運行結果:
??????????????
四、總結
這次的任務相對來說較復雜,需要耐心和細心,
參考博客:
https://blog.csdn.net/geek_monkey/article/details/86293880
STM32暫存器的簡介、地址查找,與直接操作暫存器_geekYatao-CSDN博客_stm32暫存器
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/335303.html
標籤:其他
下一篇:STM32的串口通訊協議
