#include
#define gpio_pin_6 0x0040 /* led2 */
#define gpio_pin_7
0x0080 /* led1 */
#define
pll_m
8#define
pll_n
336#define
pll_p
2#define
pll_q
7uint32_t flag = 0;
int main()
// 中斷函式處理
void tim4_irqhandler(void)
if(flag == 1)
}void rcc_config(void)
// 配置ahb預分頻
set_bit(rcc->cfgr, rcc_cfgr_hpre_div1);
// 配置apb1預分頻,得到84m的時鐘頻率
set_bit(rcc->cfgr, rcc_cfgr_ppre1_div4);
// 配置apb2預分頻
set_bit(rcc->cfgr, rcc_cfgr_ppre2_div2);
// 將hse作為pllclk的輸入
set_bit(rcc->pllcfgr, rcc_pllcfgr_pllsrc_hse);
// 使能pllclk
set_bit(rcc->cr, rcc_cr_pllon);
// 等待pllclk穩定
while(!(rcc->cr&rcc_cr_pllrdy))
// 正確設定flash延遲時間
flash->acr = flash_acr_prften | flash_acr_icen |flash_acr_dcen |flash_acr_latency_5ws;
// 檢查設定是否成功
if((flash->acr & flash_acr_latency) != flash_acr_latency_5ws)
// 將pllclk作為sysclk,關閉hsi
set_bit(rcc->cfgr, rcc_cfgr_sw_pll);
clear_bit(rcc->cr, rcc_cr_hsion);
// 等待設定成功
while((rcc->cfgr & rcc_cfgr_sws ) != rcc_cfgr_sws_pll)
}void timer_config(void)
void nvic_config(void)
void gpio_config(void)
用微控制器實現流水燈(高階版)
看到這個標題,很多人會想 流水燈?誰不會流水燈啊。微控制器入門的第一節課不就是實現跑馬燈嘛?別急,慢慢看嘛,就算是簡單的跑馬燈,也可以玩出花樣的喲。好吧,不賣關子了,先說說我今天講的內容吧,首先 如何用p1口 只有八個引腳喲 實現八個流水燈,然後 如何用p1口實現十六個流水燈。怎麼樣,有沒有一點小刺...
中斷定時器與流水燈
此程式為設定led流水燈與數碼管第0一位的0 16數字迴圈亮。不能將數碼管程式放進主函式裡,因為延遲函式delay,可能會在add自加到40時剛好在dalay裡面,這時不會有數碼管的閃爍。include include define uchar unsigned char define uint u...
呼吸流水燈
實現剛開始第乙個燈做完呼吸後左移,到達最右邊後回來,如此反覆。由於 需求,在每個計數器到達最大時設定乙個標誌位便於觀察。分析 的編寫 module xunhuan1 input wire clk input wire rst n output reg 3 0 led reg 5 0 cnt us r...