国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用STM32做流水燈

這篇具有很好參考價(jià)值的文章主要介紹了使用STM32做流水燈。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

(一)STM32介紹

STM32,從字面上來理解, ST 是意法半導(dǎo)體, M 是 Microelectronics(微電子學(xué)) 的縮寫, 32 表示32 位,合起來理解, STM32 就是指 ST 公司開發(fā)的 32 位微控制器。

1.STM32特點(diǎn)

1.強(qiáng)大的性能:STM32單片機(jī)基于ARM Cortex-M處理器核心,提供高性能的計(jì)算能力和快速的指令執(zhí)行速度。
2.豐富的外設(shè)接口:STM32提供了豐富的外設(shè)接口,包括通用IO口、串行通信接口(UART、SPI、I2C)、模擬輸入輸出、定時(shí)器、中斷控制器、模擬轉(zhuǎn)換器等。
3.多種存儲(chǔ)器選項(xiàng):STM32單片機(jī)內(nèi)置不同容量的閃存,用于存儲(chǔ)程序代碼和數(shù)據(jù)。閃存容量的大小可以根據(jù)應(yīng)用需求進(jìn)行選擇。此外,還提供了片內(nèi)RAM用于存儲(chǔ)臨時(shí)數(shù)據(jù)和堆棧。
4.低功耗設(shè)計(jì):STM32單片機(jī)具有低功耗設(shè)計(jì),可以根據(jù)應(yīng)用需求靈活地控制功耗。它提供了多種低功耗模式,可以將處理器和外設(shè)進(jìn)入低功耗狀態(tài),以延長電池壽命或降低功耗消耗。
5.安全性保護(hù):STM32單片機(jī)內(nèi)置多種安全性保護(hù)功能,包括存儲(chǔ)器保護(hù)、堆棧保護(hù)、調(diào)試和追蹤保護(hù)等。這些功能有助于防止非法訪問和攻擊,提高系統(tǒng)的安全性。
6.全面的開發(fā)工具和支持:STM32提供了全面的開發(fā)工具,包括集成開發(fā)環(huán)境(IDE)、調(diào)試器和編譯器等。同時(shí),意法半導(dǎo)體還提供了豐富的軟件庫和例程,幫助開發(fā)者快速搭建應(yīng)用。

(二)點(diǎn)亮LED燈

想要點(diǎn)亮LED燈就需要用到GPIO端口,大致分為三個(gè)步驟
1.打開GPIO口的時(shí)鐘
2.初始化GPIO口
3.設(shè)置低電平

1.打開時(shí)鐘

打開GPIO端口A、GPIO端口B、GPIO端口C時(shí)鐘

#define RCC_APB2ENR (*(unsigned int *)0x40021018)
RCC_APB2ENR |= (1<<2); // 開啟 GPIOA 時(shí)鐘
RCC_APB2ENR |= (1<<3); // 開啟 GPIOB 時(shí)鐘
RCC_APB2ENR |= (1<<4); // 開啟 GPIOC 時(shí)鐘

2.初始化GPIO口

stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
這里我們使用推挽輸出

#define GPIOB_CRH (*(unsigned int *)0x40010C04)
#define GPIOC_CRH (*(unsigned int *)0x40011004)
#define GPIOA_CRL (*(unsigned int *)0x40010800)

GPIOB_CRH&= 0xffffff0f;	//設(shè)置位 清零		
GPIOB_CRH|=0x00000020;  

	GPIOC_CRH &= 0x0fffffff; //設(shè)置位 清零		
	GPIOC_CRH|=0x30000000; 


	GPIOA_CRL &= 0xfff0ffff; //設(shè)置位 清零		
	GPIOA_CRL|=0x00010000; 

3.設(shè)置低電平

設(shè)置PA4,PB9和PC15為低電平

#define GPIOB_ODR (*(unsigned int *)0x40010C0C)
#define GPIOC_ODR (*(unsigned int *)0x4001100C)
#define GPIOA_ODR (*(unsigned int *)0x4001080C)
GPIOB_ODR |= (1<<9); 
GPIOC_ODR |= (1<<15); 
GPIOA_ODR |= (1<<4);  

(三)實(shí)現(xiàn)流水燈及仿真

打開keil5軟件,新建一個(gè)項(xiàng)目
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
輸入文件名,然后保存
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
選擇STM32F103C8,然后下一步
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
然后不用管,直接點(diǎn)OK
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
然后需要將啟動(dòng)文件加入到項(xiàng)目中,我們先打開keil5的所在位置
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
然后可以按照下列路徑找的啟動(dòng)文件
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
選擇文件startup_stm32f10x_md.s復(fù)制(若沒找的上述路徑也可以直接搜素文件名)
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
然后拷貝到項(xiàng)目文件夾中
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
打開之前建立項(xiàng)目,雙擊Source Group 1,添加之前的拷貝文件
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件

然后新建文檔
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
將代碼寫進(jìn)文檔中,代碼如下(參考STM32 F103之點(diǎn)亮LED流水燈 (STM32入門學(xué)習(xí)))

#define GPIOB 0x40010C00
#define GPIOC 0x40011000
#define GPIOA_BASE 0x40010800
#define RCC_APB2ENR (*(unsigned int *)0x40021018)
#define GPIOB_CRH (*(unsigned int *)0x40010C04)
#define GPIOC_CRH (*(unsigned int *)0x40011004)
#define GPIOA_CRL (*(unsigned int *)0x40010800)
#define GPIOB_ODR (*(unsigned int *)0x40010C0C)
#define GPIOC_ODR (*(unsigned int *)0x4001100C)
#define GPIOA_ODR (*(unsigned int *)0x4001080C)
	


void SystemInit(void);
void Delay_ms(volatile  unsigned  int);
void A_LED_LIGHT(void);
void B_LED_LIGHT(void);
void C_LED_LIGHT(void);
void Delay_ms( volatile  unsigned  int  t)
{
     unsigned  int  i;
     while(t--)
         for (i=0;i<800;i++);
}

void A_LED_LIGHT(){
	GPIOA_ODR=0x0<<4;		//PA4低電平
	GPIOB_ODR=0x1<<9;		//PB9高電平
	GPIOC_ODR=0x1<<15;		//PC15高電平
}
void B_LED_LIGHT(){
	GPIOA_ODR=0x1<<4;		//PA4高電平
	GPIOB_ODR=0x0<<9;		//PB9低電平
	GPIOC_ODR=0x1<<15;		//PC15高電平
}
void C_LED_LIGHT(){
	GPIOA_ODR=0x1<<4;		//PA4高電平
	GPIOB_ODR=0x1<<9;		//PB9高電平
	GPIOC_ODR=0x0<<15;		//PC15低電平	
}

int main(){
	int j=100;
	// 開啟時(shí)鐘
	RCC_APB2ENR |= (1<<3); // 開啟 GPIOB 時(shí)鐘
	RCC_APB2ENR |= (1<<4); // 開啟 GPIOC 時(shí)鐘
	RCC_APB2ENR |= (1<<2); // 開啟 GPIOA 時(shí)鐘
	
	
	// 設(shè)置 GPIO 為推挽輸出
	GPIOB_CRH&= 0xffffff0f;	//設(shè)置位 清零		
	GPIOB_CRH|=0x00000020;  //PB9推挽輸出

	GPIOC_CRH &= 0x0fffffff; //設(shè)置位 清零		
	GPIOC_CRH|=0x30000000;  //PC15推挽輸出


	GPIOA_CRL &= 0xfff0ffff; //設(shè)置位 清零		
	GPIOA_CRL|=0x00010000; //PA4推挽輸出

	// 3個(gè)LED初始化為不亮(即高點(diǎn)位)
	GPIOB_ODR |= (1<<9); 
	GPIOC_ODR |= (1<<15); 
	GPIOA_ODR |= (1<<4);  
	
	while(j){
		
		B_LED_LIGHT();
		Delay_ms(10000);

		C_LED_LIGHT();
		Delay_ms(10000);

		A_LED_LIGHT();
		Delay_ms(10000);
	}
	
}


void SystemInit(){
	
}

然后保存,以.c為后綴
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
然后再將新建的C文件加入Source Group 1中
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
打開魔法棒
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
打開Output,在Create HEX File處打勾
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
最后編譯,可以看到?jīng)]有問題
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
然后開始仿真,打開protues新建一個(gè)工程
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
填寫文件名,文件地址,然后下一步
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
選擇原理圖DEFAULT
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
不創(chuàng)建PCB布板設(shè)計(jì)
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
選擇沒有固件項(xiàng)目
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
點(diǎn)完成
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
點(diǎn)擊左上的P字母,打開后搜索STM32,選擇STM32F103R6
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
電路連接如下
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
然后配置STM32,右鍵點(diǎn)擊STM32F103R6,選擇編輯屬性
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
然后在program file中添加之前添加的hex文件,然后把Crystal Frequency改成8M
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
還需要配置供電網(wǎng)(如果不配置可能在調(diào)制是會(huì)出錯(cuò)),在最上面一行找到設(shè)計(jì),點(diǎn)進(jìn)去后點(diǎn)擊配置供電網(wǎng),名稱處選擇VCC/VDD,在未鏈接電網(wǎng)中找到VDDA、VSSA,將它們添加到VCC/VDD中
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件

確認(rèn)添加后,點(diǎn)擊確定
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
接下來就是仿真運(yùn)行

流水燈仿真

電路連接和燒錄

電路圖鏈接如下
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
打開燒錄程序進(jìn)行燒錄
stm32流水燈程序代碼,stm32,單片機(jī),嵌入式硬件
查看成果

6A1EF67D8E5EEFEEB0C2A9E75A7F13C5文章來源地址http://www.zghlxwxcb.cn/news/detail-759374.html

到了這里,關(guān)于使用STM32做流水燈的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32流水燈

    好的,以下是一篇高質(zhì)量的CSDN博客STM32流水燈文章: STM32是一種強(qiáng)大的單片機(jī)芯片,由STMicroelectronics公司研發(fā)。該芯片具有高性能、低功耗和廣泛的功能集,可廣泛應(yīng)用于工業(yè)控制、車載控制、消費(fèi)電子等領(lǐng)域。在本文中,我們將介紹如何使用STM32實(shí)現(xiàn)流水燈的簡單例程程序

    2024年02月06日
    瀏覽(23)
  • stm32實(shí)現(xiàn)流水燈

    stm32實(shí)現(xiàn)流水燈

    目錄 一、STM32F103C8實(shí)現(xiàn)流水燈 ?二、注意事項(xiàng) ?三、總結(jié) 打開keil,創(chuàng)建新項(xiàng)目 選擇對(duì)應(yīng)芯片 ? ?實(shí)驗(yàn)代碼 c語言代碼 匯編語言 添加驅(qū)動(dòng)文件 ? 燒錄,燒錄前設(shè)置生成hex文件 ? ?構(gòu)筑完成后在項(xiàng)目文件的Objects文件中會(huì)生成hex文件 接好線路 ?hex文件生成后用mcuisp進(jìn)行燒錄 實(shí)

    2024年02月05日
    瀏覽(24)
  • 基于stm32的流水燈實(shí)現(xiàn)

    主控芯片:? 正點(diǎn)原子STM32F103ZET6精英開發(fā)板 oled:中景園七針腳0.96寸oled 代碼編程軟件: keil5 代碼下載地址:?stm32流水燈項(xiàng)目 希望大家仔細(xì)看一看是否符合自己的需求,實(shí)際上本文中寫到的很多東西已經(jīng)能為課設(shè)所用,理清邏輯后自己編程也很方便的,但如果想直接copy我的項(xiàng)目

    2024年02月07日
    瀏覽(24)
  • STM32(一):流水燈 (標(biāo)準(zhǔn)庫函數(shù))

    STM32(一):流水燈 (標(biāo)準(zhǔn)庫函數(shù))

    STM32F103VET6是一款由意法半導(dǎo)體公司(ST)推出的基于Cortex-M3內(nèi)核的32位微控制器,硬件采用LQFP48封裝,屬于ST公司微控制器中的STM32系列。 1.1 簡要說明: 該款芯片 為 100引腳 , 512KFlash 64kSRAM LQFP 封裝 32位 Cortex內(nèi)核 內(nèi)核 Cortex-M3 Flash 512K×8bit SRAM 64K×8bit GPIO 80個(gè) ADC 12位 ADC 三路

    2024年04月10日
    瀏覽(22)
  • STM32MP157匯編流水燈

    STM32MP157匯編流水燈

    2024年02月07日
    瀏覽(28)
  • (STM32基礎(chǔ))STM32實(shí)現(xiàn)LED閃爍&LED流水燈&蜂鳴器

    (STM32基礎(chǔ))STM32實(shí)現(xiàn)LED閃爍&LED流水燈&蜂鳴器

    1、按照新建工程步驟創(chuàng)建工程,新建start、library、user三個(gè)文件夾,從固件庫添加相應(yīng)文件 2、keilkil小程序用來清理listings和objects文件夾中編譯產(chǎn)生的中間文件,以后需要打包工程的話可以先用keilkill先清理,這樣文件夾會(huì)大大縮小所占內(nèi)存。 在library中可以查看外設(shè)函數(shù)庫,

    2024年02月07日
    瀏覽(25)
  • 【STM32】STM32學(xué)習(xí)筆記-LED閃爍 LED流水燈 蜂鳴器(06-2)

    【STM32】STM32學(xué)習(xí)筆記-LED閃爍 LED流水燈 蜂鳴器(06-2)

    電路圖示例1 電路圖示例2 main.c 接線圖如下圖所示: 點(diǎn)擊下載,現(xiàn)象為LED閃爍。 main.c main.c stm32F103工程模板 01-LED閃爍.rar 02-LED流水燈.rar 03-蜂鳴器示例程序.rar 參考: 【STM32】江科大STM32學(xué)習(xí)筆記匯總

    2024年03月19日
    瀏覽(25)
  • STM32——led燈的點(diǎn)亮+閃爍+流水燈的實(shí)現(xiàn)

    STM32——led燈的點(diǎn)亮+閃爍+流水燈的實(shí)現(xiàn)

    1.原理 其方式有兩種一種是寄存器方式一種是庫函數(shù)方式,但其原理都是一樣的。如原理圖所示,與LED相連接的IO口置低電平即可點(diǎn)亮led燈 2.寄存器方式–代碼 3.庫函數(shù)–代碼 (1)led.c:函數(shù)led_config() (2)main.c調(diào)用led_config 4.結(jié)果展示 原理:讓連接的IO口先置零再置1可以使其先亮

    2024年02月08日
    瀏覽(20)
  • STM32F103之點(diǎn)亮LED流水燈

    STM32F103之點(diǎn)亮LED流水燈

    目錄 一、設(shè)計(jì)分析及代碼思路 1.實(shí)現(xiàn)流水燈步驟 2.代碼設(shè)計(jì)過程 二、創(chuàng)建項(xiàng)目 1.新建項(xiàng)目 2.編寫代碼 三、仿真運(yùn)行 四、連接電路 1.器件連接 2.程序燒錄 五、代碼燒錄及實(shí)現(xiàn) 1.燒錄實(shí)現(xiàn) 2.流水燈實(shí)現(xiàn) 六、總結(jié) ?配置時(shí)鐘使能寄存器 配置端口寄存器 設(shè)置輸出模式 實(shí)物連接及

    2024年04月25日
    瀏覽(23)
  • STM32第二課:燈的亮滅、流水燈、有源蜂鳴器

    STM32第二課:燈的亮滅、流水燈、有源蜂鳴器

    ? ? ? ? ?STM32的第二課,我們來學(xué)習(xí)如何使用STM32控制等的亮滅,使用多重控制制作我們自己的流水燈,然后再了解一下有源蜂鳴器的用法,創(chuàng)造出不一樣的聲音。 ? ? ? ? 首先開頭包含STM32的頭文件#include \\\"stm32f10x.h\\\",這個(gè)頭文件包含STM32眾多的重要驅(qū)動(dòng),一定要把這個(gè)頭文

    2024年01月24日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包