楊 浩,李紅嶺,杜彬杰,杜新東,謝飛飛,田江龍
(甘肅農(nóng)業(yè)大學(xué) 機(jī)電工程學(xué)院, 甘肅 蘭州 730070)
51系列的MCU為8位處理器,運(yùn)行速度慢,集成資源較少,采用馮諾依曼存儲(chǔ)結(jié)構(gòu),需要外圍電路[1~3],適合初學(xué)者,功能沒(méi)有STM32強(qiáng)大,STM32為32位處理器采用哈佛結(jié)構(gòu),速度快,集成度高,有豐富的外圍的接口,I2C、SPI、ADC、RTC、Timer、CRC、DMA、USART等多種外設(shè),STM32單片機(jī)有固件函數(shù)庫(kù),所以程序模塊化,接口簡(jiǎn)單[4,5]。
本實(shí)驗(yàn)開發(fā)板以STM32F103RCT6為控制核心,因?yàn)镾TM32F103RCT6具有64針腳256K字節(jié)的閃存存儲(chǔ)器,并且每個(gè)I/O口具有兩個(gè)32位配置寄存器,兩個(gè)數(shù)據(jù)寄存器,每個(gè)I/O口有7種工作方式,系統(tǒng)時(shí)鐘最大可達(dá)到72MHz、自帶兩個(gè)12位ADC轉(zhuǎn)換器并且其每個(gè)最多有16個(gè)通道、4個(gè)16位通用定時(shí)器,兩個(gè)高級(jí)定時(shí)器、內(nèi)置RTC定時(shí)器用于計(jì)時(shí),并板載多種實(shí)驗(yàn)電路,幫助同學(xué)們驗(yàn)證電子設(shè)計(jì)程序以及競(jìng)賽項(xiàng)目[6,9]。
實(shí)驗(yàn)開發(fā)版以STM32F103RCT6單片機(jī)作為控制器,外圍硬件電路為:時(shí)鐘電路、電源電路、復(fù)位電路、跑馬燈電路、按鍵輸入電路、ADC轉(zhuǎn)化電路、LCD顯示電路、PWM波輸出電路、I2C通信電路。STM32F103RCT6單片機(jī)通過(guò)按鍵電路、ADC、I2C接收信息處理后,發(fā)出信號(hào)給LED和LCD液晶屏幕給與顯示,并輸出PWM信號(hào)給電機(jī)使其做出相應(yīng)的控制動(dòng)作(圖1)。
圖1 實(shí)驗(yàn)板硬件組成框圖
跑馬燈實(shí)驗(yàn)的實(shí)驗(yàn)?zāi)康氖亲屚瑢W(xué)們了解I/O口
作為輸出時(shí)其程序的配置過(guò)程,以及了解I/O的驅(qū)動(dòng)能力,本實(shí)驗(yàn)板設(shè)置有兩個(gè)LED顯示電路,有不同的I/O口驅(qū)動(dòng),硬件電路上每個(gè)LED燈珠一段直接連接I/O口上另一端經(jīng)電阻連接于電源正極,當(dāng)I/O口輸出低電平是LED導(dǎo)通并且發(fā)光,接口電路如圖2所示。
圖2 LED實(shí)驗(yàn)電路
按鍵實(shí)驗(yàn)的實(shí)驗(yàn)?zāi)康氖亲屚瑢W(xué)們了解I/O口作為輸入時(shí)的配置過(guò)程,以及如何通過(guò)程序來(lái)檢測(cè)到按鍵狀態(tài)。按鍵的一端接地一端直接連接在控制I/O上,接口電路如圖3所示。
圖3 按鍵實(shí)驗(yàn)電路
液晶顯示模塊為2.8吋的薄膜晶體管液晶顯示器,通過(guò)STM32的普通I/O口模擬8080總線來(lái)控制TFTLCD并且支持65K色顯示,顯示分辨率為320×240。接口為16位的80并口,硬件接口電路如圖4所示。
圖4 LCD液晶顯示接口電路
其中CS:TFTLCD片選信號(hào)。
WR:向TFTLCD寫入數(shù)據(jù)。
RD:從TFTLCD讀寫數(shù)據(jù)。
D[15:0]:16位雙向數(shù)據(jù)線。
RST:硬復(fù)位TFTLCD。
RS:命令/數(shù)據(jù)標(biāo)志(0,讀寫命令:1,讀寫數(shù)據(jù))。
PWM信號(hào)主要用以對(duì)電機(jī)或舵機(jī)控制本開發(fā)板中,專門設(shè)計(jì)了步進(jìn)電機(jī)的舵機(jī)輸出接口,步進(jìn)電機(jī)包含轉(zhuǎn)速控制端口和使能控制端、方向控制端,硬件接口電路如圖5所示。
圖5 PWM信號(hào)輸出接口電路
STM32的開發(fā)需要多個(gè)軟件配合,編譯軟件為KEIL公司的MDK5,或是MDK4不同封裝的芯片需要不同的軟件,MDK5的功能是很強(qiáng)大的。使用C語(yǔ)言進(jìn)行開發(fā),集成編寫、編譯、連接、在線調(diào)試、仿真于一體。這里已最簡(jiǎn)單的跑馬燈來(lái)介紹相關(guān)軟件。
(1)定時(shí)器初始化流程圖如圖6所示。
圖6 定時(shí)器初始化流程圖
(2)PWM波輸出主程序。
int main(void)
{
u16 led0pwmval=0;
u8 dir=1;
delay_init(); //延時(shí)函數(shù)初始化
...
while(1)
{
delay_ms(10);
if(dir)led0pwmval++;
else led0pwmval--;
if(led0pwmval>300)dir=0;
if(led0pwmval==0)dir=1;
TIM_SetCompare2(TIM3,led0pwmval);
}
}
本次設(shè)計(jì)符合教學(xué)要求[10~12],實(shí)驗(yàn)內(nèi)容與教學(xué)內(nèi)容密切配合,實(shí)驗(yàn)開發(fā)板中板載了多種實(shí)驗(yàn)電路,并且為了降低學(xué)習(xí)難度,提高同學(xué)們的學(xué)習(xí)興趣,每個(gè)實(shí)驗(yàn)都配套了實(shí)驗(yàn)程序,不僅可實(shí)現(xiàn)如跑馬燈、按鍵、ADC模數(shù)轉(zhuǎn)換、LCD顯示、定時(shí)器的PWM波的輸出以及I2C通信等傳統(tǒng)的單片機(jī)教學(xué)課程內(nèi)容實(shí)驗(yàn),還有攝像頭模塊、音頻輸入輸出、以太網(wǎng)接口、USB-HID接口、SD卡接口等基礎(chǔ)教學(xué)內(nèi)容中涉及不多的實(shí)驗(yàn),可用于同學(xué)們的SRTP項(xiàng)目設(shè)計(jì)和競(jìng)賽培訓(xùn),為學(xué)生電子協(xié)會(huì)活動(dòng)等更深層次的學(xué)習(xí)提供便利[13~15]。