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