【安信可蓝牙开发板PB-02-Kit测评】点亮LED
<div class='showpostmsg'><p align="left" style="text-align:left">由于安信可蓝牙开发板是面向蓝牙应用的开发板,板载的外设资源相对比较少,只有2类,即:一类是RGB_LED,另一类则是2个独立的LED,其原理图见图1所示。</p><p> </p>
<p>图1 LED电路</p>
<p> </p>
<p>有了上面的原理图,就等于有了控制LED的引脚号。</p>
<p>不知为何,在例程中既然提供GPIO口的示例,就为啥不点亮一个LED给大家一点光亮呢?</p>
<p>既然没有,我们就自己去点亮吧,如果不过瘾,那就多点亮它几个!</p>
<p>1.点亮暖色灯</p>
<p>点亮暖色灯的主程序为:</p>
<pre>
<code class="language-cpp">int app_main(void)
{
/* Initialize the operating system */
osal_init_system();
osal_pwrmgr_device( PWRMGR_BATTERY );
hal_gpio_pin_init(0, 1);
hal_gpio_write(0, 1);
/* Start OSAL */
osal_start_system(); // No Return from here
return 0;
}</code></pre>
<p>程序下载后,其执行效果如图2所示。</p>
<p>图2点亮暖色灯</p>
<p> </p>
<p> </p>
<p>2. 点亮冷暖双灯</p>
<p>以点亮暖色灯为基础,点亮冷暖双灯程序为:</p>
<pre>
<code class="language-cpp">int app_main(void)
{
/* Initialize the operating system */
osal_init_system();
osal_pwrmgr_device( PWRMGR_BATTERY );
hal_gpio_pin_init(0, 1);
hal_gpio_write(0, 1);
hal_gpio_pin_init(P34, 1);
hal_gpio_write(P34, 1);
/* Start OSAL */
osal_start_system(); // No Return from here
return 0;
}</code></pre>
<p>程序下载后,其执行效果如图3所示。</p>
<p> </p>
<p>图3点亮冷暖双灯</p>
<p> </p>
<p>3. 闪烁效果</p>
<p>既然能点亮LED,那项目LED便也就不是什么问题了,通过延时处理就可实现LED闪烁的闪烁。LED闪烁的程序为:</p>
<pre>
<code class="language-cpp">int app_main(void)
{
/* Initialize the operating system */
osal_init_system();
osal_pwrmgr_device( PWRMGR_BATTERY );
hal_gpio_pin_init(P0, OEN);
hal_gpio_write(P0, 1);
hal_gpio_pin_init(P15, OEN);//R
hal_gpio_write(P15, 1);
hal_gpio_pin_init(P34, OEN);//B
hal_gpio_write(P34, 1);
while(1)
{
for(i=0;i<1000;i++)
for(j=0;j<2000;j++);
hal_gpio_write(P34, 1);
for(i=0;i<1000;i++)
for(j=0;j<2000;j++);
hal_gpio_write(P34, 0);
}
/* Start OSAL */
osal_start_system(); // No Return from here
return 0;
}</code></pre>
<p>当然也可以将延时语句分离成独立的功能函数,其内容为:</p>
<pre>
<code class="language-cpp">void delay(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for(j=0;j<2000;j++);
}</code></pre>
<p>使用延时函数的主程序为:</p>
<pre>
<code class="language-cpp">int app_main(void)
{
/* Initialize the operating system */
osal_init_system();
osal_pwrmgr_device( PWRMGR_BATTERY );
hal_gpio_pin_init(P0, OEN);
hal_gpio_write(P0, 1);
hal_gpio_pin_init(P15, OEN);
hal_gpio_write(P15, 1);
hal_gpio_pin_init(P34, OEN);
hal_gpio_write(P34, 1);
while(1)
{
delay(1000);
hal_gpio_write(P34, 1);
delay(1000);
hal_gpio_write(P34, 0);
}
/* Start OSAL */
osal_start_system(); // No Return from here
return 0;
}</code></pre>
<p> </p>
<p>4. 点亮全部LED</p>
<p>除了冷暖LED外,还板载了一个RGB_LED,点亮全部LED的程序为:</p>
<pre>
<code class="language-cpp">int app_main(void)
{
/* Initialize the operating system */
osal_init_system();
osal_pwrmgr_device( PWRMGR_BATTERY );
hal_gpio_pin_init(P0, OEN);
hal_gpio_write(P0, 1);
hal_gpio_pin_init(P34, OEN);
hal_gpio_write(P34, 1);
hal_gpio_pin_init(P23, OEN);
hal_gpio_write(P23, 1);
hal_gpio_pin_init(P18, OEN);
hal_gpio_write(P18, 1);
hal_gpio_pin_init(P15, OEN);
hal_gpio_write(P15, 1);
while(1)
{
delay(1000);
hal_gpio_write(P34, 1);
delay(1000);
hal_gpio_write(P34, 0);
}
/* Start OSAL */
osal_start_system(); // No Return from here
return 0;
}</code></pre>
<p>程序下载后,其执行效果如图4所示。</p>
<p>图4点亮全部LED</p>
<p> </p>
<p>此外,通过扩展接口还可以点亮外挂的LED模块,其实现的效果如图5所示。</p>
<p>图5 点亮外挂LED模块</p>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>控制智能光源很方便</p>
<p>虽然灯很小,但是颜色很炫。期待后续哈。</p>
soso 发表于 2021-11-19 10:04
虽然灯很小,但是颜色很炫。期待后续哈。
<p>感谢支持!!!</p>
<p>多谢多谢,用来控制灯光很好,还可以改成声控的</p>
牛啊,不过我的板子下载后为什么不亮
页:
[1]