STM32F1開發指南筆記25 繼電器

2021-10-05 11:54:20 字數 2298 閱讀 9311

當2個xq引腳通電時,(電磁感應定律)電磁鐵會產生磁,從而吸附上面的銜鐵向下,下面的ck常開電路導通。

微控制器可以直接驅動2個xq引腳(微控制器輸出的電流較小),也可以借助驅動電路(uln2003或者三極體)來驅動xq引腳,經過uln2003可以輸出較大的電流。

2個xq引腳接在p26端子上,然後連線uln2003,輸出到繼電器j1、j2上。

注意:通過uln2003的電平會取反(輸入為0則輸出為1,輸入為1則輸出為0)

繼電器乙個xq引腳接高電平5v,乙個xq引腳接j1/j2,當j1為低電平時繼電器1導通,j2為低電平時繼電器2導通,並且導通時對應led會點亮。還有三個輸出引腳,對應繼電器上的1a(開關柄),1b(常閉),1c(常開)。

對繼電器的控制變成了對io口電平的控制,輸出高電平(uln2003會翻轉電平輸出低電平)即可開啟繼電器,同理,輸出低電平即關閉繼電器。

注意:本程式所占用的gpio介面pa13、pa14上電後為jtag功能,

需要在rcc程式裡啟動afio時鐘,再在relay_init函式裡加入:

gpio_pinremapconfig(gpio_remap_swj_disable, enable);

// 改變指定管腳的對映,完全禁用jtag+sw-dp才能將jatg介面重定義為gpio

*/#include

"relay.h"

//繼電器的介面初始化

void

relay_init

(void

)//繼電器的控制程式(c=0繼電器放開,c=1繼電器吸合)

void

relay_1

(u8 c)

//繼電器的控制程式(c=0繼電器放開,c=1繼電器吸合)

void

relay_2

(u8 c)

#ifndef __relay_h

#define __relay_h

#include

"sys.h"

#define relayport gpioa

//定義io介面

#define relay1 gpio_pin_14

//定義io介面

#define relay2 gpio_pin_13

//定義io介面

void

relay_init

(void);

//繼電器初始化

void

relay_1

(u8 c)

;//繼電器控制1

void

relay_2

(u8 c)

;//繼電器控制2

#endif

注意:控制繼電器的兩個引腳與jtag復用了,且上電預設為jtag模式,如果需要做gpio使用,則需要將其重對映為gpio,呼叫gpio_pinremapconfig(gpio_remap_swj_disable, enable)

STM32F1開發指南筆記10 串列埠通訊

串列埠設定的一般步驟可以總結為如下幾個步驟 串列埠時鐘使能,gpio 時鐘使能 串列埠復位 gpio 埠模式設定 串列埠引數初始化 開啟中斷並且初始化 nvic 如果需要開啟中斷才需要這個步驟 使能串列埠 編寫中斷處理函式 插入換行 usart rx sta 0 else if times 200 ...

STM32F1開發指南筆記37 紅外遙控器

本章,介紹如何通過stm32來解碼紅外遙控器的訊號。戰艦stmf103標配了紅外置收頭和乙個很小巧的紅外遙控器。在本章中,將利用stm32f1的輸入捕獲功能,解碼開發板標配的這個紅外遙控器的編碼訊號,並將解碼後的鍵值在tftlcd模組上顯示出來。紅外遙控是一種無線 非接觸摸制技術,具有抗干擾能力強,...

STM32f1學習筆記 GPIO

參考文章 stm32自學筆記 stm32可以提供很多gpio,一般分別在5個埠 port gpioa gpioe 每個埠有16個gpio,最大耐壓值為5v。每個埠有32為寬頻的設定暫存器,一共64位,每個gpio占用4位配置位。其中兩位設定gpio的方向,另外兩位設定gpio的工作模式。1 gpio...