今天給大家分享一下STM32 流水燈簡單的模擬吧,我感覺這個提供有用的,但是自己也是第一次使用,主要是感覺曲線很高級。在PWM中查看脈寬很有用。 code: led.c #include "led.h"#include "delay.h"/*GPIO的控制寄存器的配置1、配置輸出引腳2、打開對應的輸 ...
今天給大家分享一下STM32 流水燈簡單的模擬吧,我感覺這個提供有用的,但是自己也是第一次使用,主要是感覺曲線很高級。在PWM中查看脈寬很有用。
code: led.c
#include "led.h"
#include "delay.h"
/*
GPIO的控制寄存器的配置
1、配置輸出引腳
2、打開對應的輸出的寄存器的時鐘
3、配置引腳輸出的模式:強上拉、推完、開漏輸出
4、配置輸出的速度。
*/
void Led_funcing(){
GPIO_DeInit(LED_GPIO_PORT);// 註意這裡的函數非常的重要,這裡是將對應的GPIO埠初始化成預設的樣子,因為這個埠可能在以前使用過,其他的配置可能發生了改變
GPIO_InitTypeDef GPIOC_LED_Init; // 定義GPIO的結構體,也就是外設的結構體
RCC_APB2PeriphClockCmd( LED_GPIO_CLK,ENABLE); //打開對應的GPIO的時鐘,註意這裡不同的外設可能掛載的時鐘不同,所以需要開原理圖,
GPIOC_LED_Init.GPIO_Pin=LED_GPIO_PIN ; // 配置需要使用的引腳
GPIOC_LED_Init.GPIO_Mode=GPIO_Mode_Out_PP; //配置引腳的輸出的模式
GPIOC_LED_Init.GPIO_Speed=GPIO_Speed_50MHz; // 配置輸出的頻率,這個在輸入的時候不需要配置
GPIO_Init(LED_GPIO_PORT,&GPIOC_LED_Init); // 使用初始化函數初始化剛剛定義的結構體,以及對應的GPIO埠
}
code: mian.c
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
/*
功能的實現,註意在KEIL5中不要使用中文的空格這樣將會出現錯誤。重點,重點,重點
*/
int main(){
Led_funcing();
// int k=5;
while(1)
{
GPIO_SetBits(LED_GPIO_PORT, LED_GPIO_PIN ); // 將對應的GPIO埠對應的引腳設置位高電平
delay(10000);//延時
GPIO_ResetBits(LED_GPIO_PORT, LED_GPIO_PIN); // 將對應的GPIO埠對應的引腳設置成低電平
delay(10000); // 延時,
}
}
/*
總結:
1、在進行不同功能函數的編寫的時候,最好在USER文件夾下麵建一個對應的文件,註意有C文件,那麼就一定有H文件
2、在編譯C文件的時候,首先應當在配中找到對應的H文件的文件夾目錄
3、不同的晶元對應的庫函數具有一定的差異,所以在進行引入庫的時候,可能會出錯誤,
4、如果在編譯的時候出現相關的庫函數文件無法正常的打開,那麼首先需要查看是否指定相關的路徑
5、在魔術棒中的文件的輸出最好都定義到自己的文件夾中,這樣便於進行需要找。
*/
配置模擬:選擇使用對應的CPU即可
查看狀態配置:
模擬結果:
最後模擬的結果:時間與單片機上實際運行的時間長短不一致,很多博主說改變配飾的頻率為8.0MHZ 。