版本协议

LGPL 3.0

标签
专业版
#第八届立创电赛#【立创电赛】基于瑞萨的桌面智能时钟设计

创建时间:1年前

908 0

描述

<div>       本设计是参加嘉立创举办的2023暑期训练营设计出的一款智能时钟,给予在电脑前办公的小伙伴们一款桌面小助手,让你提升对时间的把握。</div> <div>       本设计参考嘉立创训练营的案例设计:<a href="/course-examples/li-chuang-dian-sai-ji-yu-rui-sa-de-zhuo-mian-dian-zi-shi-zhong-she-ji" target="_blank">【立创电赛】基于瑞萨的桌面电子时钟设计 - 嘉立创EDA开源硬件平台 (oshwhub.com)</a></div> <div>       B站视频链接:<a href="https://www.bilibili.com/video/BV1GM4y1p7bu/?vd_source=204e41a73398c72e3b5b6b8749ddd6c2" target="_blank">【第八届立创电子大赛暑期训练营】瑞萨桌面智能时钟设计_哔哩哔哩_bilibili</a></div> <div><img src="//image.lceda.cn/pullimage/TF91E3nV9VGdVQjhzIPmTLv48LrX46Yn54L2VDiJ.png" alt="TF91E3nV9VGdVQjhzIPmTLv48LrX46Yn54L2VDiJ.png" width="861" height="419"></div> <div> </div> <div><img src="//image.lceda.cn/pullimage/Kf5GRcvKvPSHQrL4gqkeKEjayauviqfIUFz3pabY.jpeg" alt="Kf5GRcvKvPSHQrL4gqkeKEjayauviqfIUFz3pabY.jpeg" width="577" height="302"></div> <div> </div> <div><strong><span style="font-size:24px;">1.硬件架构说明</span></strong></div> <div><strong><span style="font-size:18px;">1.1 电源供电</span></strong></div> <div>      电源电路可由Type-C或锂电池为整个系统供电,接入USB供电的同时通过电池管理芯片给锂电池充电。</div> <div><img src="//image.lceda.cn/pullimage/xLWzuGb9sNVRBMtB1JPQrlRGN0WszR88HLamCZ12.png" alt="xLWzuGb9sNVRBMtB1JPQrlRGN0WszR88HLamCZ12.png"></div> <div><span style="font-size:14px;">图1-1 电源输入部分</span></div> <div>      Type-C接口选用USB-14p的常见型号,并使用其USB2.0部分与电脑进行通信,可进行串口烧写功能,CC1、CC2处外接5.1k下拉电阻作识别。</div> <div><img src="//image.lceda.cn/pullimage/5koZBsyvO4LJHd0oflcRpfBwp7imCcvsYauP7GCW.png" alt="5koZBsyvO4LJHd0oflcRpfBwp7imCcvsYauP7GCW.png" width="564" height="428"></div> <div><span style="font-size:14px;">图1-2 CCx说明</span></div> <div>        Type-C协议的应用可参考这篇博文:</div> <div><a href="https://blog.csdn.net/wcc243588569/article/details/126333916" target="_blank">Type-C接口简单介绍-面向单片机应用_type-c接口图片_江安吴彦祖的博客-CSDN博客</a></div> <div>       锂电池部分:电源切换电路,通过一个P沟道的mos、一个下拉电阻以及一个二极管组成电源切换电路,当Type-C电源接入时,MOS管G极电压为5V,经过一个1N5819肖特基二极管,此时VCC电压是4.4V,也就是S极4.4V,不满足导通条件,电池电源截断。当Type-C接口断开,G极为低,S极由于体二极管的存在,会有将近3.5V左右的电压,满足条件,此时MOS管导通,由电池来给后续电路进行供电,由于1N5819肖特基二极管的存在,电流不会反向倒灌回去。</div> <div>       通过一个TP4056锂电池充电芯片给电池进行充电,当Type-C接口接入时,同时会给锂电池充电,确保电量充足。Charge1作为充电状态指示灯,R6是充电电流反馈电阻,通过改变R6的阻值,可以改变整体的充电电流,R6阻值范围可参考图1-3。</div> <div><img src="//image.lceda.cn/pullimage/NweLBtcT7WxJOnBE6VKMn852WXPGI2CMeP4egthU.png" alt="NweLBtcT7WxJOnBE6VKMn852WXPGI2CMeP4egthU.png" width="642" height="256"></div> <div><span style="font-size:14px;">图1-3 TP4056恒流充电电流与电阻关系</span></div> <div><strong><span style="font-size:18px;">1.2 主控部分</span></strong></div> <div>       主控单片机使用的是R7FA2E1A72DFL,工作电压在1.6V到5.5V之间,最大时钟频率为48Mhz,最大支持128-KB的FLASH,16-KB的SRAM,12位的AD转换控制器。芯片内部集成有晶振,可以无需外部晶振,但是系统内部的晶振存在一定的精度误差,可惜本设计中没有加入外部晶振,也算以后的一个设计经验。</div> <div>       芯片集成触摸功能,无需触摸芯片即可实现触摸功能。</div> <div>       在电源输入部分加入100nf电容进行电源滤波,VCL引脚用于稳定内部电源的平滑电容,加入4.7uf的电容并连接到VSS引脚。</div> <div><img src="//image.lceda.cn/pullimage/I8ZyVO2KpCgnezOkiBMwYDbqdOlgOfdJbTR5QBvj.png" alt="I8ZyVO2KpCgnezOkiBMwYDbqdOlgOfdJbTR5QBvj.png" width="605" height="379"></div> <div><span style="font-size:14px;">图1-4 主控电路部分</span></div> <div><span style="font-size:18px;"><strong>1.3 独立按键</strong></span></div> <div>      采用四个按键作为时钟调节、键盘宏(有待实现)、切换显示内容的使用。</div> <div><img src="//image.lceda.cn/pullimage/63McEkkZZEpXI0O70OyfsQCPmhXUcRSMvsN4kYSF.png" alt="63McEkkZZEpXI0O70OyfsQCPmhXUcRSMvsN4kYSF.png" width="290" height="272"></div> <div><span style="font-size:14px;">图1-5 独立按键电路</span></div> <div><span style="font-size:18px;"><strong>1.4 DHT11温湿度传感器</strong></span></div> <div>       采用DHT11温湿度传感器检测环境温湿度。</div> <div><img src="//image.lceda.cn/pullimage/UYVyhQRMMqYvHiJgtKQNuGdXf0SJOetELduQJPJQ.png" alt="UYVyhQRMMqYvHiJgtKQNuGdXf0SJOetELduQJPJQ.png"></div> <div><span style="font-size:14px;">图1-6 DHT11温湿度传感器电路</span></div> <div><img src="//image.lceda.cn/pullimage/vasE6amEhCWYgHIiaNPUph1Zm0L105WEoIuPMCGj.png" alt="vasE6amEhCWYgHIiaNPUph1Zm0L105WEoIuPMCGj.png" width="344" height="360"></div> <div><span style="font-size:14px;">图1-7 DHT11引脚图</span></div> <div>      其驱动方法可参考下图,附件中也有DHT11的数据手册</div> <div><img src="//image.lceda.cn/pullimage/PiWqPYqtOTCKOs91zAkwK3txgxjHm37YWHvNCGX0.png" alt="PiWqPYqtOTCKOs91zAkwK3txgxjHm37YWHvNCGX0.png" width="645" height="203"></div> <div><span style="font-size:14px;">图1-8 DHT11时序图</span></div> <div>      数据格式为</div> <div><img src="//image.lceda.cn/pullimage/i4rc7AThe0ISfUkf1MPQD0XtrlxMhOBYxODrdrUt.png" alt="i4rc7AThe0ISfUkf1MPQD0XtrlxMhOBYxODrdrUt.png" width="640" height="126"></div> <div><span style="font-size:14px;">图1-9 DHT11数据包格式</span></div> <div>      参考链接:DHT11温湿度传感器学习笔记_啦啦赛的博客-CSDN博客</div> <div><strong><span style="font-size:18px;">1.5 四位数码管</span></strong></div> <div>       采用0.56寸共阴极数码管用于显示时间、温湿度等信息。</div> <div><img src="//image.lceda.cn/pullimage/bJ0FqQToimXUZzapmgFNlRu9FWslzxtGcXrSIj2p.png" alt="bJ0FqQToimXUZzapmgFNlRu9FWslzxtGcXrSIj2p.png" width="497" height="386"></div> <div><span style="font-size:14px;">图1-10 0.56寸共阴级4位数码管电路</span></div> <div>     驱动方法设计可参考图1-11电路图的引脚定义,共阳共阴的驱动方法大同小异,买对数码管拿到数据手册就很简单了。</div> <div><img src="//image.lceda.cn/pullimage/FZLs386EXiRrH1yDQg23IXfpx4yTeBBOUoSLU1xt.png" alt="FZLs386EXiRrH1yDQg23IXfpx4yTeBBOUoSLU1xt.png" width="501" height="579"></div> <div><span style="font-size:14px;">图1-11 四位数码管引脚</span></div> <div><strong><span style="font-size:18px;">1.6 电位器</span></strong></div> <div>      用到市面上较好买到的拨轮电位器,通过单片机芯片内置的ADC电位采集功能采集到对应的电位值,滤除低位数值的影响后可发送至电脑来调节电脑的音量大小。</div> <div><img src="//image.lceda.cn/pullimage/TDI0KETUxuN1quOkcjpYnd7TO33gSxz9xZP2qSdT.png" alt="TDI0KETUxuN1quOkcjpYnd7TO33gSxz9xZP2qSdT.png"></div> <div><span style="font-size:14px;">图1-12 电位器</span></div> <div><strong><span style="font-size:18px;">1.7 调试接口</span></strong></div> <div>       共有2种调试接口,一种通过FPC插座引出SWD调试端口,可用Jlink调试与下载(可惜身上没有,导致添加不了触摸方案),另一种串口部分则是板载一颗CH340N芯片,可用作串口烧写和上位机通信。</div> <div><img src="//image.lceda.cn/pullimage/wz8jCFWeMTgzPl1v6HkNnC1ZQuu4dppXDcItpTfX.png" alt="wz8jCFWeMTgzPl1v6HkNnC1ZQuu4dppXDcItpTfX.png"></div> <div><span style="font-size:14px;">图1-13 调试接口</span></div> <div><strong><span style="font-size:24px;">2.软件部分</span></strong></div> <div>     使用QT制作的简易上位机,上位机往下发送的数据格式为十六进制,而单片机往上发送则是Ascii码,也就是字符型数据,两者不统一也不影响,重要的是定义好上下通信数据包的接收与发送方法,例如十六进制就根据十六进制的数据含义来处理数据。</div> <div><img src="//image.lceda.cn/pullimage/K4Plpf7VvNVA0md64DnWO9ceFuhx659aFC26oI8A.png" alt="K4Plpf7VvNVA0md64DnWO9ceFuhx659aFC26oI8A.png" width="495" height="374"></div> <div><span style="font-size:14px;">图2-1 上位机</span></div> <div>     下面提供上下通信的数据包格式供大家参考,附件中也提供上位机软件。</div> <div> <table> <tr> <td> <div class="table-cell-line">头</div> </td> <td> <div class="table-cell-line">控制位</div> </td> <td> <div class="table-cell-line">包1</div> </td> <td> <div class="table-cell-line">包2</div> </td> <td> <div class="table-cell-line">包3</div> </td> <td> <div class="table-cell-line">包4</div> </td> <td> <div class="table-cell-line">尾</div> </td> <td> <div class="table-cell-line">解析</div> </td> </tr> <tr> <td> <div class="table-cell-line">0xFF</div> </td> <td> <div class="table-cell-line">0xCA</div> </td> <td> <div class="table-cell-line">Hour</div> </td> <td> <div class="table-cell-line">Minute</div> </td> <td> <div class="table-cell-line">Second</div> </td> <td> <div class="table-cell-line">NoThing</div> </td> <td> <div class="table-cell-line">0xFF</div> </td> <td> <div class="table-cell-line">同步时间</div> </td> </tr> </table> </div> <div><span style="font-size:14px;">图2-2 十六进制的数据包格式(上位机往下发送)</span></div> <div> <table> <tr> <td> <div class="table-cell-line">完整数据</div> </td> <td> <div class="table-cell-line">字符判断</div> </td> <td> <div class="table-cell-line">数据内容</div> </td> <td> <div class="table-cell-line">解析</div> </td> </tr> <tr> <td> <div class="table-cell-line">"Volume=xx"</div> </td> <td> <div class="table-cell-line">Volume=</div> </td> <td> <div class="table-cell-line">xx</div> </td> <td> <div class="table-cell-line">电脑音量</div> </td> </tr> <tr> <td> <div class="table-cell-line">"temp=xx.x"</div> </td> <td> <div class="table-cell-line">temp=</div> </td> <td> <div class="table-cell-line">xx.x</div> </td> <td> <div class="table-cell-line">温度</div> </td> </tr> <tr> <td> <div class="table-cell-line">"hum=xx"</div> </td> <td> <div class="table-cell-line">hum=</div> </td> <td> <div class="table-cell-line">xx</div> </td> <td> <div class="table-cell-line">湿度</div> </td> </tr> </table> </div> <div><span style="font-size:14px;">图2-3 字符型数据包</span></div> <div><span style="font-size:18px;"><strong>2.1同步时间</strong></span></div> <div>     QT中定义一个时间系统时间类currentTime,再定义一个定时器,关联定时器溢出信号到定时器处理函数,在定时器处理函数中获取系统时间并保存到数组中:</div> <div> <table style="border-collapse:collapse;width:98.9399%;"> <tr> <td style="width:99.333%;"> <div style="background-color:#ffffff;padding:0px 0px 0px 2px;"> <div style="color:#000000;background-color:#ffffff;font-family:Consolas;font-size:12pt;white-space:nowrap;"> <div style="background-color:#ffffff;padding:0px 0px 0px 2px;"> <div style="color:#000000;background-color:#ffffff;font-family:Consolas;font-size:12pt;white-space:nowrap;"> <p><span style="color:#000000;"> </span><span style="color:#3f7f5f;">// 获取当前时间</span></p> <p><span style="color:#000000;"> </span><span style="text-decoration:underline;color:#0066cc;">QDateTime</span><span style="color:#000000;"> currentTime = </span><span style="color:#000000;text-decoration:underline;">QDateTime</span><span style="color:#000000;text-decoration:underline;">::currentDateTime();</span></p> <p><span style="color:#000000;"> </span><span style="color:#000000;text-decoration:underline;">timer</span><span style="color:#000000;">.</span><span style="color:#000000;text-decoration:underline;">start</span><span style="color:#000000;">(10);</span></p> <p><span style="color:#000000;"> connect(&</span><span style="color:#000000;text-decoration:underline;">timer</span><span style="color:#000000;">,SIGNAL(timeout()),</span><span style="color:#000000;text-decoration:underline;">this</span><span style="color:#000000;">,SLOT(showTime()));</span></p> </div> </div> </div> </div> </td> </tr> </table> </div> <div>     然后就可以添加按钮"同步"的槽函数,发送时间同步信息到单片机了。</div> <div> <table style="border-collapse:collapse;width:98.9399%;height:156px;"> <tr style="height:156px;"> <td style="width:99.333%;height:156px;"> <div style="background-color:#ffffff;padding:0px 0px 0px 2px;"> <div style="color:#000000;background-color:#ffffff;font-family:Consolas;font-size:12pt;white-space:nowrap;"> <p><span style="font-size:16px;">Get_year   = currentTime.date().year();</span><br><span style="font-size:16px;">Get_month  = currentTime.date().month();</span><br><span style="font-size:16px;">Get_day    = currentTime.date().day();</span><br><span style="font-size:16px;">Get_hour   = currentTime.time().hour();</span><br><span style="font-size:16px;">Get_minute = currentTime.time().minute();</span><br><span style="font-size:16px;">Get_second = currentTime.time().second();</span><br><span style="font-size:16px;">QDate date = currentTime.date();</span></p> </div> </div> </td> </tr> </table> </div> <table style="border-collapse:collapse;width:98.9399%;height:197px;"> <tr style="height:197px;"> <td style="width:99.333%;height:197px;"> <p><span style="color:#000000;"> </span></p> <pre><span style="font-size:16px;">QString timeString = QString("%1%2%3").arg(Get_hour, 2, 16, QChar('0')).arg(Get_minute, 2, 16, QChar('0')).arg(Get_second, 2, 16, QChar('0'));</span><br><br><span style="font-size:16px;">serial.write(QByteArray::fromHex(HearData.toLatin1()));</span><br><span style="font-size:16px;">serial.write(QByteArray::fromHex(QString("ca").toLatin1()));</span><br><span style="font-size:16px;">serial.write(QByteArray::fromHex(timeString.toLatin1()));</span><br><span style="font-size:16px;">serial.write(QByteArray::fromHex(HearData.toLatin1()));</span><br><span style="font-size:16px;">serial.write(QByteArray::fromHex(HearData.toLatin1()));</span><br><span style="font-size:16px;">qDebug()<<"时间"+timeString;</span></pre> </td> </tr> </table> <div><span style="font-size:18px;"><strong>2.2获取单片机采集的温湿度信息</strong></span></div> <div>     根据温湿度传感器DHT11的数据手册,测量速率大于2s为佳,所以在单片机的rtc更新事件中每隔5秒发送一次:</div> <div> <table> <tr> <td> <div class="table-cell-line"> <div style="background-color:#ffffff;padding:0px 0px 0px 2px;"> <div style="color:#000000;background-color:#ffffff;font-family:Consolas;font-size:12pt;white-space:nowrap;"> <p><span style="color:#3f7f5f;">//隔5秒读一次温湿度</span></p> <p><span style="color:#000000;"> </span><span style="color:#7f0055;font-weight:bold;">if</span><span style="color:#000000;">(rtc_second%5==0){</span><span style="color:#3f7f5f;">//5S读⼀次</span></p> <p><span style="color:#000000;"> DHT11_Read();</span></p> <p><span style="color:#000000;"> </span><span style="color:#642880;font-weight:bold;">printf</span><span style="color:#000000;">(</span><span style="color:#2a00ff;">"hum=%d.%d </span><span style="color:#2a00ff;text-decoration:underline;">temp</span><span style="color:#2a00ff;">=%d.%d\n"</span><span style="color:#000000;">,humdity_integer,humdity_decimal,temp_integer,temp_decimal);</span></p> <p><span style="color:#000000;"> }</span></p> </div> </div> </div> </td> </tr> </table> </div> <div>     上位机接收方法为:</div> <div> <table> <tr> <td> <div class="table-cell-line"> <div style="background-color:#ffffff;padding:0px 0px 0px 2px;"> <div style="color:#000000;background-color:#ffffff;font-family:Consolas;font-size:12pt;white-space:nowrap;"> <p><span style="color:#000000;"> </span><span style="color:#7f0055;font-weight:bold;">if</span><span style="color:#000000;">(</span><span style="color:#000000;text-decoration:underline;">buf.contains(</span><span style="color:#2a00ff;text-decoration:underline;">"hum="</span><span style="color:#000000;text-decoration:underline;">,Qt::CaseSensitive)</span><span style="color:#000000;">){</span></p> <p><span style="color:#000000;"> </span><span style="color:#000000;text-decoration:underline;">QString</span><span style="color:#000000;"> hum =</span><span style="color:#000000;text-decoration:underline;">buf</span><span style="color:#000000;">.</span><span style="color:#000000;text-decoration:underline;">mid</span><span style="color:#000000;">(</span><span style="color:#000000;text-decoration:underline;">buf</span><span style="color:#000000;">.</span><span style="color:#000000;text-decoration:underline;">indexOf</span><span style="color:#000000;">(</span><span style="color:#2a00ff;">"hum="</span><span style="color:#000000;">)+4,2);</span></p> <p><span style="color:#000000;"> </span><span style="color:#000000;text-decoration:underline;">ui</span><span style="color:#000000;">-></span><span style="color:#000000;text-decoration:underline;">Hum_Show</span><span style="color:#000000;">-></span><span style="color:#000000;text-decoration:underline;">setText</span><span style="color:#000000;">(hum+</span><span style="color:#2a00ff;">"°RH"</span><span style="color:#000000;">);</span></p> <p><span style="color:#000000;"> }</span></p> <p><span style="color:#000000;"> </span><span style="color:#7f0055;font-weight:bold;">if</span><span style="color:#000000;">(</span><span style="color:#000000;text-decoration:underline;">buf.contains(</span><span style="color:#2a00ff;text-decoration:underline;">"</span><span style="color:#2a00ff;text-decoration:underline;">temp</span><span style="color:#2a00ff;text-decoration:underline;">="</span><span style="color:#000000;text-decoration:underline;">,Qt::CaseSensitive)</span><span style="color:#000000;">){</span></p> <p><span style="color:#000000;"> </span><span style="color:#000000;text-decoration:underline;">QString</span><span style="color:#000000;"> temp =</span><span style="color:#000000;text-decoration:underline;">buf</span><span style="color:#000000;">.</span><span style="color:#000000;text-decoration:underline;">mid</span><span style="color:#000000;">(</span><span style="color:#000000;text-decoration:underline;">buf</span><span style="color:#000000;">.</span><span style="color:#000000;text-decoration:underline;">indexOf</span><span style="color:#000000;">(</span><span style="color:#2a00ff;">"</span><span style="color:#2a00ff;text-decoration:underline;">temp</span><span style="color:#2a00ff;">="</span><span style="color:#000000;">)+5,4);</span></p> <p><span style="color:#000000;"> </span><span style="color:#000000;text-decoration:underline;">ui</span><span style="color:#000000;">-></span><span style="color:#000000;text-decoration:underline;">Temp_Show</span><span style="color:#000000;">-></span><span style="color:#000000;text-decoration:underline;">setText</span><span style="color:#000000;">(temp+</span><span style="color:#2a00ff;">"°C"</span><span style="color:#000000;">);</span></p> <p><span style="color:#000000;"> }</span></p> </div> </div> </div> </td> </tr> </table> </div> <div> </div> <div><strong><span style="font-size:18px;">2.3调节电脑音量</span></strong></div> <div>      同理,单片机在ADC更新事件中获取电位值,映射到音量范围取值(0-100)发送到上位机,瑞萨内置的ADC精度为12位,也就是0-4095,滤除个位十位即对应0-4000,这样子有助于提升抗干扰。</div> <div><img src="//image.lceda.cn/pullimage/N3gLEKVzmhL9Uz3ZjjQpeV6K1lvabJKd1RVfX8Ze.png" alt="N3gLEKVzmhL9Uz3ZjjQpeV6K1lvabJKd1RVfX8Ze.png"></div> <div><span style="font-size:14px;">图2-4 电位转换公式</span></div> <div>      这里的ADCValue就是滤除个位十位所获取的电位值,Data即为要设置的电脑音量值,这样子就可以将Data按照数据包格式发送到电脑上了,这里4000-ADC_Value是因为电位器往上转是电位小的方向,“与&”上0xfffe保证为偶数。</div> <div> <table style="border-collapse:collapse;width:97.8182%;height:22px;"> <tr style="height:22px;"> <td style="width:98.645%;height:22px;"> <div style="background-color:#ffffff;padding:0px 0px 0px 2px;"> <div style="color:#000000;background-color:#ffffff;font-family:Consolas;font-size:12pt;white-space:nowrap;"> <p style="background-color:#e8f2fe;"><span style="color:#642880;font-weight:bold;">printf</span><span style="color:#000000;">(</span><span style="color:#2a00ff;">"Volume=%3d\n "</span><span style="color:#000000;">,(4000-ADC_Value)/40&0xfffe);</span></p> </div> </div> </td> </tr> </table> </div> <div> </div> <div>       查阅了很多资料发现好像QT没有自带调整音量的功能,说是有什么调用window的API来完成,不过有一个B站博主的视频(虽然该视频的声音有点呃)提到可以用window自带的虚拟键码实现音量调整,经测试确实可以调整音量,并实现了音量调节功能。</div> <div><a href="https://www.bilibili.com/video/BV17T4y1Q7g2/?spm_id_from=333.880.my_history.page.click&vd_source=204e41a73398c72e3b5b6b8749ddd6c2" target="_blank">野路子玩Qt,第七集,电脑音量控制_哔哩哔哩_bilibili</a></div> <div><a href="https://learn.microsoft.com/zh-cn/windows/win32/inputdev/virtual-key-codes" target="_blank">虚拟键码 (Winuser.h) - Win32 apps | Microsoft Learn</a></div> <div>       写在最后:本次训练营我觉得收获到很多东西,开发单片机的方法,查阅资料的途径,电子设计中常见到的问题,小窍门等等很多,当然本设计也出现了许多很可惜的地方,1个是嘉立创提供的3D打印劵2张劵没有及时激活导致过期,还有是蜂鸣器的引脚选到了P200,这个引脚没有输出功能,可惜了。</div> <div> </div> <div> </div>
  • 调节音量.mp4

  • 基础功能演示.mp4

  • 同步时间.mp4

文档

BOM

暂无

附件

附件名 下载
DesktopClock.zip
调节音量.mp4
基础功能演示.mp4
DHT11温湿度数据.pdf
同步时间.mp4
RA2E1数据手册(中英).pdf

成员

评论(2)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>作品上没有看到立创电赛相关标识哦</p>
立创电赛 回复
<p>完成项目后,可前往申请瑞萨开发板,详见:<a href="https://diy.szlcsc.com/posts/15a52db9fd7d40c492eb505280278e45" target="_blank">https://diy.szlcsc.com/posts/15a52db9fd7d40c492eb505280278e45</a></p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow