打印
[DemoCode下载]

最新M471K系列单片机开发板测评:测试GPIO和串口

[复制链接]
8096|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
测试方法:实现输入按键控制和输出点亮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);
}
实现LED闪烁,并通过传入一个参数控制延时周期
void led_blink(int i)
{
        while(i--)
                CLK_SysTickDelay(100000);
                PB14 ^=1;
}
这里使用了库函数进行延时,最小延时单元设置为0.1s,即100000us
通过传入的变量i,可以控制多少个0.1s后进行翻转。

按键输入用于控制一个变量从10到1循环变化,通过指针传入该变量的地址
//通过按键改变一个数字从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 \n",*i,(float)*i/5);
                }
        }
}
每次完成一次变量改变后,打印出变量值和当前对应的周期。代码实现了松手检测,按下后,先延时确认是否真的按下,如果是按下了,那么等待松手,松手后进行变量的减一操作,然后判断变量是否循环到0
然后主函数调用他们
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("\n\nCPU [url=home.php?mod=space&uid=72445]@[/url] %dHz\n", SystemCoreClock);

        printf("+-------------------------------------------------+\n");
        printf("|    PB.14(Output) and PCH.4(Input) Sample Code     |\n");
        printf("+-------------------------------------------------+\n\n");
       
        led_init();
        button_init();

        while(1)
        {
                led_blink(i);
                get_button(&i);               
        }
}
00_LED.rar (746.17 KB)
最后串口打印的效果如下,完整的工程看附件,可以放到
M471_Series_BSP_CMSIS_V3.00.000\SampleCode\StdDriver
这个目录下,因为我是用GPIO的例子复制了一份,修改的。

使用特权

评论回复
沙发
Sunriver_Yao| | 2021-8-16 14:41 | 只看该作者
终于清晰明了。不错!

使用特权

评论回复
板凳
周建华123| | 2021-8-16 16:19 | 只看该作者
66666 赞

使用特权

评论回复
地板
laocuo1142| | 2021-8-16 19:02 | 只看该作者
很好的干货哟

使用特权

评论回复
5
labasi| | 2021-9-10 14:05 | 只看该作者
这个系列是什么时候出的呀请问

使用特权

评论回复
6
paotangsan| | 2021-9-10 14:06 | 只看该作者
这个容易上手吗

使用特权

评论回复
7
renzheshengui| | 2021-9-10 15:01 | 只看该作者
现在入手途径有啥啊

使用特权

评论回复
8
wakayi| | 2021-9-10 15:04 | 只看该作者
代码风格非常好啊

使用特权

评论回复
9
wowu| | 2021-9-10 15:11 | 只看该作者
比较容易上手的小例程

使用特权

评论回复
10
jiekou001| | 2023-1-12 16:05 | 只看该作者
简单的点个灯,也说明新唐的库函数非常容易上手。

使用特权

评论回复
11
643757107| | 2023-1-12 17:19 | 只看该作者
^=1的操作是什么操作

使用特权

评论回复
12
643757107| | 2023-1-12 17:21 | 只看该作者

使用特权

评论回复
13
中国龙芯CDX| | 2023-1-12 20:12 | 只看该作者
非常的清晰明白,很好

使用特权

评论回复
14
szt1993| | 2023-1-12 20:22 | 只看该作者

真值表是数电学习时必要的练习过程,异或等等运算,挺经典的

使用特权

评论回复
15
OKAKAKO| | 2023-1-13 19:07 | 只看该作者
很清晰明白,容易搞懂

使用特权

评论回复
16
643757107| | 2023-2-7 14:13 | 只看该作者
原来调整一个参数可以这么做。

使用特权

评论回复
17
AdaMaYun| | 2023-2-7 15:24 | 只看该作者
新唐的库函数挺容易上手,很明白了

使用特权

评论回复
18
小灵通2018| | 2023-2-7 17:24 | 只看该作者
这个按键控制闪烁频率方法新颖。

使用特权

评论回复
19
updownq| | 2023-4-16 21:54 | 只看该作者
M471K 系列单片机是 Nuvoton 公司推出的一款基于 Arm Cortex-M4 内核的高性能单片机,适用于智能家居、工业自动化、电气控制等领域。

使用特权

评论回复
20
beacherblack| | 2023-4-17 18:06 | 只看该作者
开发板还支持在线下载和调试,并提供了丰富的示例程序和软件库,为开发者提供了便利和支持。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1954

主题

15896

帖子

207

粉丝