測(cè)試方法:實(shí)現(xiàn)輸入按鍵控制和輸出點(diǎn)亮LED,輸入可以控制LED閃爍速度
串口可以打印出閃爍的周期。
GPIO的初始化
void led_init(void){ GPIO_SetMode(PB, BIT14, GPIO_MODE_OUTPUT); PB14 = 1;}
//初始化按鍵的端口為輸入模式void button_init(void){ GPIO_SetMode(PH, BIT4, GPIO_MODE_INPUT);}
實(shí)現(xiàn)LED閃爍,并通過(guò)傳入一個(gè)參數(shù)控制延時(shí)周期
void led_blink(int i){ while(i--) CLK_SysTickDelay(100000); PB14 ^=1;}
這里使用了庫(kù)函數(shù)進(jìn)行延時(shí),最小延時(shí)單元設(shè)置為0.1s,即100000us。通過(guò)傳入的變量i,可以控制多少個(gè)0.1s后進(jìn)行翻轉(zhuǎn)。 按鍵輸入用于控制一個(gè)變量從10到1循環(huán)變化,通過(guò)指針傳入該變量的地址。
//通過(guò)按鍵改變一個(gè)數(shù)字從10到1的變化,用于控制LED閃爍的頻率。
void get_button(int *i){
if(PH4==0) { CLK_SysTickDelay(1000); if(PH4==0) { while(PH4==0); (*i)--; if(*i《=0) *i=10; printf(“i=%d T=%.2f s
”,*i,(float)*i/5); } }}
每次完成一次變量改變后,打印出變量值和當(dāng)前對(duì)應(yīng)的周期。代碼實(shí)現(xiàn)了松手檢測(cè),按下后,先延時(shí)確認(rèn)是否真的按下,如果是按下了,那么等待松手,松手后進(jìn)行變量的減一操作,然后判斷變量是否循環(huán)到0,然后主函數(shù)調(diào)用他們。
int32_t main(void){int i=10; /* Init System, IP clock and multi-function I/O. */ SYS_Init();
/* Init UART0 for printf */ UART0_Init();
printf(“
CPU [url=home.php?mod=space&uid=72445]@[/url] %dHz
”, SystemCoreClock);
printf(“+-------------------------------------------------+
”); printf(“| PB.14(Output) and PCH.4(Input) Sample Code |
”); printf(“+-------------------------------------------------+
”);
led_init(); button_init();
while(1) { led_blink(i); get_button(&i); }}
00_LED.rar (746.17 KB,)
最后串口打印的效果如下,完整的工程看附件,可以放到
M471_Series_BSP_CMSIS_V3.00.000SampleCodeStdDriver
這個(gè)目錄下,因?yàn)槲沂怯肎PIO的例子復(fù)制了一份,修改的。
責(zé)任編輯:haq
-
led
+關(guān)注
關(guān)注
242文章
23359瀏覽量
663210 -
單片機(jī)
+關(guān)注
關(guān)注
6043文章
44621瀏覽量
638574
原文標(biāo)題:最新M471K系列單片機(jī)開(kāi)發(fā)板測(cè)評(píng):測(cè)試GPIO和串口
文章出處:【微信號(hào):pcbgood,微信公眾號(hào):奈因PCB電路板設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web3/M00/05/27/wKgZPGd9HROAe7lSAAU3AZD_C80751.jpg)
XD08M3232紅外感應(yīng)單片機(jī)開(kāi)發(fā)板適合初學(xué)者嗎?
盤(pán)古22K開(kāi)發(fā)板
單片機(jī)怎么寫(xiě)入程序
32位M0核普冉單片機(jī) PY32F003開(kāi)發(fā)板20腳 快速入門(mén) 易于上手
![32位<b class='flag-5'>M</b>0核普冉<b class='flag-5'>單片機(jī)</b> PY32F003<b class='flag-5'>開(kāi)發(fā)板</b>20腳 快速入門(mén) 易于上手](https://file1.elecfans.com//web2/M00/06/30/wKgZombipiSAePQNAAykeVlL0zw744.jpg)
單片機(jī)STM32可以用Python寫(xiě)嗎?可以的開(kāi)發(fā)板有哪些?
![<b class='flag-5'>單片機(jī)</b>STM32可以用Python寫(xiě)嗎?可以的<b class='flag-5'>開(kāi)發(fā)板</b>有哪些?](https://file.elecfans.com/web2/M00/9B/3D/poYBAGQjnauAVXOgAABFcEbXdEE684.png)
PY32F002A單片機(jī)開(kāi)發(fā)板 PY32F002AF15P6開(kāi)發(fā)板 32位MCU,M0+內(nèi)核
![PY32F002A<b class='flag-5'>單片機(jī)</b><b class='flag-5'>開(kāi)發(fā)板</b> PY32F002AF15P6<b class='flag-5'>開(kāi)發(fā)板</b> 32位MCU,<b class='flag-5'>M</b>0+內(nèi)核](https://file1.elecfans.com//web2/M00/05/14/wKgZombWr56AONF1AAKjvai7Xtk000.jpg)
單片機(jī)燒錄程序的基本步驟是什么
linux開(kāi)發(fā)板和單片機(jī)開(kāi)發(fā)的區(qū)別
Banana Pi BPI-M4 Berry 開(kāi)源硬件開(kāi)發(fā)板以太網(wǎng)口和WiFi測(cè)試
![Banana Pi BPI-<b class='flag-5'>M</b>4 Berry 開(kāi)源硬件<b class='flag-5'>開(kāi)發(fā)板</b>以太網(wǎng)口和WiFi<b class='flag-5'>測(cè)試</b>](https://file1.elecfans.com//web2/M00/F8/03/wKgaomaDt0CAYEh3AAIazk8Xjoo562.jpg)
Banana Pi BPI-M7 RK3588開(kāi)源硬件開(kāi)發(fā)板評(píng)測(cè)試
![Banana Pi BPI-<b class='flag-5'>M</b>7 RK3588開(kāi)源硬件<b class='flag-5'>開(kāi)發(fā)板</b>評(píng)<b class='flag-5'>測(cè)試</b>](https://file1.elecfans.com//web2/M00/EF/D6/wKgZomZxNYaABrmVAAH1esuRS5w557.jpg)
紫光同創(chuàng)PGL22G開(kāi)發(fā)板|盤(pán)古22K開(kāi)發(fā)板,國(guó)產(chǎn)FPGA開(kāi)發(fā)板,接口豐富,高性?xún)r(jià)比
PY32系列單片機(jī)開(kāi)發(fā)板 常用型號(hào)都有 支持Keil,IAR進(jìn)行開(kāi)發(fā)
![PY32<b class='flag-5'>系列</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>開(kāi)發(fā)板</b> 常用型號(hào)都有 支持Keil,IAR進(jìn)行<b class='flag-5'>開(kāi)發(fā)</b>](https://file1.elecfans.com//web2/M00/E8/DB/wKgaomZNlUCAZR2BAA4W9nyyvYg902.jpg)
評(píng)論