lingxin_yuhe 发表于 2022-8-13 11:23

【雅特力AT32WB415系列蓝牙BLE 5.0 MCU】第三篇:lightble控制OLED显示

<div class='showpostmsg'> 本帖最后由 lingxin_yuhe 于 2022-8-13 11:54 编辑

<p>前言:蓝牙控制OLED的显示,开始先驱动好OLED,本想用MCU的I2C驱动+u8g2进行显示,但有问题,编译有问题如下图所示,各种排查没解决,只能IO模拟显示不使用u8g2库了,这个库我在其他单片机都用的没问题的,不知道问题在哪里,后面在慢慢研究,如果有知道问题所在的伙伴,可以留言告之。头文件和文件都加入了项目,说加extern &ldquo;C&rdquo;,也加了,总是提示这个错误。</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>看最下面演示效果,如果想实现如下效果,原理分析一下:</p>

<p>根据demo中灯的控制原理,手机端lightble通过C101写入对应的0和1控制灯的灭和亮,那么写入3456分别控制显示第一行、显示第二行、显示第三行以及清屏四种功能。那么接来写一下具体实现过程。</p>

<p><strong><span style="font-size:18px;">一、MCU端修改工作</span></strong></p>

<ol>
        <li>OLED驱动测试</li>
</ol>

<p>OLED的IO模拟控制驱动网上很多,我这里也是以前修改的驱动,后面提供源码啊。引脚连接如下:</p>

<p>#define OLED_SCL &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIO_PINS_9 &nbsp;//PB9</p>

<p>#define OLED_SDA &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIO_PINS_8 &nbsp;//PB8</p>

<p>GND------GND</p>

<p>VCC-------VDD</p>

<p>在mcu的demo中加入OLED的驱动,编译下载,显示如图所示。</p>

<p> &nbsp;</p>

<ol start="2">
        <li>受控功能增加</li>
</ol>

<p>增加四种功能的宏定义,在at_cmd.h中按照IO的控制逻辑写,如图所示。</p>

<p> &nbsp;</p>

<p>在main.c函数中增加控制功能,如下图所示,先增加at_cmd_list中四种功能的逻辑。</p>

<p> &nbsp;</p>

<p>在main函数中初始化OLED,如图所示。</p>

<p> &nbsp;</p>

<p>在串口处理函数中增加四种功能的逻辑处理,如图所示。</p>

<p> &nbsp;</p>

<p>下载到MCU中,现在用蓝牙还是控制不了的,需要修改BLE端的逻辑,增加3456的发送消息给MCU。</p>

<p><strong><span style="font-size:18px;">二、BLE端修改工作</span></strong></p>

<p>BLE端可根据自己的逻辑功能进行修改,现在实现的简单功能,只需要修改2个地方。app.h和custom_task.c两个文件,如下图所示修改app.h仿照IO的控制发送。</p>

<p> &nbsp;</p>

<p>Custom_task.c文件中修改gattc_write_req_ind_handler函数对接到lightble的数据进行处理发送mcu的逻辑,如图所示。</p>

<p> &nbsp;</p>

<p>修改完成后,将MCU和BLE端的两个文件下载到板子中,重启,通过lightble发送03显示第一行的AT32WB415,发送04显示第二行OLED TEST,发送05显示第三行EEWORLD,发送06清屏,到这里可以重复通过lightble发送指令控制OLED的显示了。</p>

<p>&nbsp;</p>

<p>82807c8a4d7616045982e056a3af4fdd<br />
&nbsp;</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>

Jacktang 发表于 2022-8-13 17:43

<p>lightble控制OLED显示测试的很好</p>

<p> &nbsp;</p>
页: [1]
查看完整版本: 【雅特力AT32WB415系列蓝牙BLE 5.0 MCU】第三篇:lightble控制OLED显示