|
這是一個(gè)通用的STM32啟動(dòng)及控制代碼集.它沒(méi)有使用ST的庫(kù),完全是基于寄存器的操作.它包括三部分:
1,sys
sys部分包含了STM32的系統(tǒng)級(jí)別的代碼,包括:時(shí)鐘配置,IO口輸入輸出管理,中斷管理,待機(jī)模式設(shè)置,BKP操作,軟復(fù)位,JTAG配置等.
2,usart
usart部分包含了對(duì)串口1的初始化,用于串口調(diào)試,或者串口打印信息.
3,delay
delay部分包含了2個(gè)基本的延時(shí)函數(shù),delay_us和delay_ms,這兩個(gè)函數(shù)采用STM32的SYSTICK作為延時(shí)定時(shí)器,所以在使用delay的時(shí)候,需要占用SYSTICK.
單片機(jī)源程序如下:
- #include <stm32f10x_lib.h>
- #include "sys.h"
- #include "usart.h"
- #include "delay.h"
- #include "led.h"
- #include "key.h"
- #include "exti.h"
- #include "wdg.h"
- #include "timer.h"
- #include "lcd.h"
- //此程序的LCD驅(qū)動(dòng)部分,對(duì)IO口操作進(jìn)行了加速處理,使得刷屏速度提高了近一倍.
- //具體請(qǐng)看ILI93XX.c和lcd.h文件!
- u16 x=0;
- int main(void)
- {
- Stm32_Clock_Init(9);//系統(tǒng)時(shí)鐘設(shè)置
- delay_init(72); //延時(shí)初始化
- uart_init(72,9600); //串口1初始化
- LED_Init();
- LCD_Init();
- Timerx_Init(10000,7199);//10Khz的計(jì)數(shù)頻率,計(jì)數(shù)到5000為500ms
- while(1)
- {
- LCD_Clear(BLUE);
- x++;
- LCD_Clear(GREEN);
- x++;
- LCD_Clear(RED);
- x++;
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
ALIENTEK MINISTM32 擴(kuò)展實(shí)驗(yàn)6 LCD幀統(tǒng)計(jì).rar
(38.12 KB, 下載次數(shù): 9)
2019-2-24 20:56 上傳
點(diǎn)擊文件名下載附件
|
|