泰凌微8258学习日记-1:点亮小灯、用按钮控制小灯开关

        本人于24年七月份开始学习泰凌微8258的相关知识,在各位朋友的帮助下,一个月的时间,从一个小白,变成一个入门级菜鸟。学会了点亮小灯、用按钮控制小灯的开关、按钮控制RGB改变小灯的颜色、用定时器检测按钮长按从而控制小灯开关、检测ADC值、五路PWM调光,LCD屏幕的点亮,下面我会逐一把我的完成方式写出来,希望可以帮助到跟我一样的初学者,同时也希望各位大佬可以指正我的不足。😂

        本篇主要讲的是怎么点亮一个小灯,并且通过按钮去控制小灯的开关(包括怎么样让小灯闪烁)。

1.点亮 


        点亮一个小灯首先要找到板子对应的GPIO口,然后对这个GPIO口进行初始化,就这么简单。这里建议把初始化的代码放在nain_light.c中的user_init();函数里面。代码如下:

  gpio_set_func(LED_ON_OFF_Pin,AS_GPIO);
  gpio_set_output_en(LED_ON_OFF_Pin,1);
  gpio_set_input_en(LED_ON_OFF_Pin,0);
  gpio_write(LED_ON_OFF_Pin,1);

        其中的LED_ON_OFF_Pin就是小灯对应的GPIO口,只不过在light.h中被宏定义了,#define LED_ON_OFF_Pin      GPIO_PA1,GPIO_PA1就是我这个板子对应的GPIO口的名称,大家可以根据自己的板子来进行修改。其中的函数作用分别是, 设置GPIO模式、设置输入还是输出模式、写入指令(高电平),大家可以看自己的板子到底是给1开启小灯还是给0开启小灯,至此小灯就可以点亮了。

2.按钮控制小灯开关 

        同小灯一样,首先要做的就是初始化按钮的GPIO口,这里不过多赘述,代码如下:

    gpio_set_func(KEY_ON_OFF_Pin,AS_GPIO);
    gpio_set_input_en(KEY_ON_OFF_Pin,1);
    gpio_set_output_en(KEY_ON_OFF_Pin,0);
	gpio_setup_up_down_resistor(KEY_ON_OFF_Pin, PM_PIN_PULLUP_10K);//上拉

        然后你就可以在main_loop函数里面写入你自己代码,完成通过按钮控制小灯的操作了。当然你要是想让代码简洁并且可移植,也可以在外面定义一个新的函数,然后在main_loop函数直接引用。

void key(void)
{
    	static u32 i=0;
     	if(gpio_read(KEY_ON_OFF_Pin)==0)
     	{
     		sleep_us(30000);//按键消抖,不然可能按键读取不准确
     		i++;
     		if(i==1)
     		{
     			gpio_write(LED_ON_OFF_Pin,1);//按下按钮第一次开灯
     		}
     		else if(i==2)
     		{
     			gpio_write(LED_ON_OFF_Pin,0);//按下按钮第二次关灯
     		    i=0;                        //标志位重置
     		}
     	}
}

        闪烁的话就是在置零置一之间加入延时函数sleep_us()就可以了。

void shine (void){

	gpio_write(LED_ON_OFF_Pin,1);
	sleep_us(500000);//延时500*1000us=500ms=0.5s
	gpio_write(LED_ON_OFF_Pin,0);
	sleep_us(500000);

}

        好了,下期再见!ヾ(•ω•`)o88

 

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值