今天給大家分享一下STM32 流水燈簡單的仿真吧,我感覺這個提供有用的,但是自己也是第一次使用,主要是感覺曲線很高級。在PWM中查看脈寬很有用。
code: led.c
#include "led.h"#include "delay.h"/*GPIO的控制寄存器的配置1、配置輸出引腳2、打開對應(yīng)的輸出的寄存器的時鐘3、配置引腳輸出的模式:強(qiáng)上拉、推完、開漏輸出4、配置輸出的速度。*/void Led_funcing(){GPIO_DeInit(LED_GPIO_PORT);// 注意這里的函數(shù)非常的重要,這里是將對應(yīng)的GPIO端口初始化成默認(rèn)的樣子,因?yàn)檫@個端口可能在以前使用過,其他的配置可能發(fā)生了改變GPIO_InitTypeDef GPIOC_LED_Init; // 定義GPIO的結(jié)構(gòu)體,也就是外設(shè)的結(jié)構(gòu)體RCC_APB2PeriphClockCmd( LED_GPIO_CLK,ENABLE); //打開對應(yīng)的GPIO的時鐘,注意這里不同的外設(shè)可能掛載的時鐘不同,所以需要開原理圖,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); // 使用初始化函數(shù)初始化剛剛定義的結(jié)構(gòu)體,以及對應(yīng)的GPIO端口}
code: mian.c
#include "stm32f10x.h"#include "led.h"#include "delay.h"/*功能的實(shí)現(xiàn),注意在KEIL5中不要使用中文的空格這樣將會出現(xiàn)錯誤。重點(diǎn),重點(diǎn),重點(diǎn)*/int main(){Led_funcing();// int k=5;while(1){GPIO_SetBits(LED_GPIO_PORT, LED_GPIO_PIN ); // 將對應(yīng)的GPIO端口對應(yīng)的引腳設(shè)置為高電平delay(10000);//延時GPIO_ResetBits(LED_GPIO_PORT, LED_GPIO_PIN); // 將對應(yīng)的GPIO端口對應(yīng)的引腳設(shè)置成低電平delay(10000);//延時,}}
總結(jié):
1、在進(jìn)行不同功能函數(shù)的編寫的時候,最好在USER文件夾下面建一個對應(yīng)的文件,注意有C文件,那么就一定有H文件。
2、在編譯C文件的時候,首先在配中找到對應(yīng)的H文件的文件夾目錄。
3、不同的芯片對應(yīng)的庫函數(shù)具有一定的差異,所以在進(jìn)行引入庫的時候,可能會出錯誤。
4、如果在編譯的時候出現(xiàn)相關(guān)的庫函數(shù)文件無法正常的打開,那么首先需要查看是否指定相關(guān)的路徑。
5、在魔術(shù)棒中的文件的輸出最好都定義到自己的文件夾中,這樣便于進(jìn)行需要找。
配置仿真:
1,選擇使用對應(yīng)的CPU即可
2,查看狀態(tài)配置
3,仿真結(jié)果
4,最后仿真的結(jié)果:時間與單片機(jī)上實(shí)際運(yùn)行的時間一致,如果不一致,請查看晶振或者時鐘配置。
-
led
+關(guān)注
關(guān)注
242文章
23252瀏覽量
660559 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355729 -
keil
+關(guān)注
關(guān)注
68文章
1212瀏覽量
166840 -
仿真調(diào)試
+關(guān)注
關(guān)注
0文章
9瀏覽量
7508
發(fā)布評論請先 登錄
相關(guān)推薦
評論