測試方法:實現(xià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);}
實現(xiàn)LED閃爍,并通過傳入一個參數(shù)控制延時周期
void led_blink(int i){ while(i--) CLK_SysTickDelay(100000); PB14 ^=1;}
這里使用了庫函數(shù)進行延時,最小延時單元設置為0.1s,即100000us。通過傳入的變量i,可以控制多少個0.1s后進行翻轉。 按鍵輸入用于控制一個變量從10到1循環(huán)變化,通過指針傳入該變量的地址。
//通過按鍵改變一個數(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); } }}
每次完成一次變量改變后,打印出變量值和當前對應的周期。代碼實現(xià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
這個目錄下,因為我是用GPIO的例子復制了一份,修改的。
責任編輯:haq
-
led
+關注
關注
243文章
24596瀏覽量
690900 -
單片機
+關注
關注
6076文章
45495瀏覽量
670439
原文標題:最新M471K系列單片機開發(fā)板測評:測試GPIO和串口
文章出處:【微信號:pcbgood,微信公眾號:奈因PCB電路板設計】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
探索UCANS32K1系列CAN節(jié)點開發(fā)板:設計、應用與實戰(zhàn)指南
深入了解 S32K312EVB-Q172 開發(fā)板:硬件特性與使用指南
【作品合集】視美泰M-K1HSE、3568開發(fā)板測評
【干貨分享】在M-K1HSE開發(fā)板上使用SecureCRT工具進行調(diào)試
【M-K1HSE開發(fā)板免費體驗】系統(tǒng)調(diào)試工具 SecureCRT 的使用體驗
【HZ-RK3568開發(fā)板免費體驗】--測試開發(fā)板
單片機定制開發(fā)的設計思路
ALINX AMD RFSoC射頻開發(fā)板選型指南
【M-K1HSE開發(fā)板免費體驗】開發(fā)板硬件解析
國產(chǎn)入門級32位單片機PY32F002A開發(fā)板
瑞薩Cortext-M85內(nèi)核RA8系列單片機的串口輸出實現(xiàn)方法
最新M471K系列單片機開發(fā)板測試
評論