今天給大家分享一下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、在魔術棒中的文件的輸出最好都定義到自己的文件夾中,這樣便于進行需要找。
配置仿真:
1,選擇使用對應的CPU即可
2,查看狀態配置
3,仿真結果
4,最后仿真的結果:時間與單片機上實際運行的時間一致,如果不一致,請查看晶振或者時鐘配置。
-
led
+關注
關注
240文章
22904瀏覽量
649995 -
STM32
+關注
關注
2257文章
10822瀏覽量
352394 -
keil
+關注
關注
68文章
1207瀏覽量
166159 -
仿真調試
+關注
關注
0文章
9瀏覽量
7475
發布評論請先 登錄
相關推薦
評論