【proteus 51单片机入门】8*8led点阵

ops/2025/1/15 18:13:40/
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="markdown_views prism-atom-one-dark">cap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">

class="toc">

文章目录

  • 前言
  • 如何点亮led点阵
  • 仿真图
  • 代码点亮led
      • 核心代码解析
    • 爱心代码
  • 滚动
  • 总结


前言

在嵌入式系统的开发中࿰c;LED点阵显示器是一种常见的显示设备࿰c;它可以用来显示各种图形和文字࿰c;为用户提供直观的信息反馈。本文将介绍如何使用Proteus软件和class="tags" href="/51DanPianJi.html" title=51class="tags" href="/DanPianJi.html" title=单片机>单片机>51class="tags" href="/DanPianJi.html" title=单片机>单片机来驱动一个8x8的LED点阵显示器。

Proteus是一款强大的电子设计自动化(EDA)工具࿰c;它包含了电路仿真、微处理器仿真、PCB设计等多种功能࿰c;非常适合用于嵌入式系统的开发和学习。而class="tags" href="/51DanPianJi.html" title=51class="tags" href="/DanPianJi.html" title=单片机>单片机>51class="tags" href="/DanPianJi.html" title=单片机>单片机则是一种广泛应用的微控制器࿰c;它的编程语言是C语言࿰c;易于学习和使用。

在本文中࿰c;我们将首先介绍LED点阵显示器的工作原理࿰c;然后讲解如何使用Proteus软件和class="tags" href="/51DanPianJi.html" title=51class="tags" href="/DanPianJi.html" title=单片机>单片机>51class="tags" href="/DanPianJi.html" title=单片机>单片机来驱动LED点阵显示器࿰c;包括硬件连接、软件编程等步骤。我们还将提供一些示例代码࿰c;帮助读者更好地理解和掌握这个过程。


如何点亮led点阵

LED点阵的工作原理基于电平控制。在一个常见的8x8 LED点阵中࿰c;我们有8个行引脚和8个列引脚࿰c;总共16个引脚用于控制64个LED灯。

以下是一个简单的例子来说明如何点亮LED点阵中的特定LED:

假设我们有一个8x8的LED点阵࿰c;我们想要点亮第一行第一列的LED。我们首先需要确定LED点阵是共阳极还是共阴极:

  • 共阳极:在这种情况下࿰c;所有LED的阳极(正极)都连接在一起࿰c;形成行或列。要点亮特定的LED࿰c;我们需要将其阳极连接的行引脚设置为高电平࿰c;将其阴极连接的列引脚设置为低电平。所以࿰c;要点亮第一行第一列的LED࿰c;我们将第一行引脚设置为高电平࿰c;第一列引脚设置为低电平。

  • 共阴极:在这种情况下࿰c;所有LED的阴极(负极)都连接在一起࿰c;形成行或列。要点亮特定的LED࿰c;我们需要将其阴极连接的行引脚设置为低电平࿰c;将其阳极连接的列引脚设置为高电平。所以࿰c;要点亮第一行第一列的LED࿰c;我们将第一行引脚设置为低电平࿰c;第一列引脚设置为高电平。

这就是如何通过控制电平来点亮LED点阵中的特定LED。要显示更复杂的图案࿰c;我们可以通过快速地改变每一行和每一列的电平࿰c;以控制每一个LED的亮度。由于人眼的视觉暂留效应࿰c;我们看到的将是一个完整的图案࿰c;而不是一闪一闪的LED灯。

仿真图

matrix点阵图搜索方式如下:
c="https://img-blog.csdnimg.cn/direct/1e679bf0804f4791b82a4f639e6c8c88.png" alt="在这里插入图片描述" />
电路图:
c="https://img-blog.csdnimg.cn/direct/8e3c3f4e71d64453a20ac26931c1409b.png" alt="在这里插入图片描述" />
其中࿰c;他上面为行࿰c;下面为列

代码点亮led

代码概况:

<code class="prism language-c">class="token macro property">class="token directive-hash">#class="token directive keyword">include class="token string"><regx52.h>  class="token comment">// 包含class="tags" href="/51DanPianJi.html" title=51class="tags" href="/DanPianJi.html" title=单片机>单片机>51class="tags" href="/DanPianJi.html" title=单片机>单片机的头文件class="token comment">// 定义LED点阵的行和列对应的端口
class="token macro property">class="token directive-hash">#class="token directive keyword">define class="token macro-name">LED_MATRIX_ROWS class="token expression">P2
class="token macro property">class="token directive-hash">#class="token directive keyword">define class="token macro-name">LED_MATRIX_COLS class="token expression">P1class="token comment">// 延时函数࿰c;用于控制LED点阵的刷新速度
class="token keyword">void class="token function">delayclass="token punctuation">(class="token keyword">unsigned class="token keyword">int msclass="token punctuation">) class="token punctuation">{class="token keyword">unsigned class="token keyword">int iclass="token punctuation">, jclass="token punctuation">;class="token keyword">forclass="token punctuation">(i class="token operator">= msclass="token punctuation">; i class="token operator">> class="token number">0class="token punctuation">; iclass="token operator">--class="token punctuation">)class="token keyword">forclass="token punctuation">(j class="token operator">= class="token number">120class="token punctuation">; j class="token operator">> class="token number">0class="token punctuation">; jclass="token operator">--class="token punctuation">)class="token punctuation">;
class="token punctuation">}class="token comment">// 8x8 LED点阵的显示缓冲区࿰c;用于存储要显示的图案
class="token keyword">unsigned class="token keyword">char led_matrix_bufferclass="token punctuation">[class="token number">8class="token punctuation">] class="token operator">= class="token punctuation">{class="token number">0class="token punctuation">}class="token punctuation">;class="token comment">// LED点阵的初始化函数࿰c;设置行和列的初始状态
class="token keyword">void class="token function">LedMatrix_Initclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token comment">// 将行设置为低电平࿰c;列设置为高电平LED_MATRIX_ROWS class="token operator">= class="token number">0x00class="token punctuation">;LED_MATRIX_COLS class="token operator">= class="token number">0xFFclass="token punctuation">;
class="token punctuation">}class="token comment">// LED点阵的刷新函数࿰c;用于更新LED点阵的显示
class="token keyword">void class="token function">LedMatrix_Refreshclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token keyword">unsigned class="token keyword">char iclass="token punctuation">;class="token keyword">for class="token punctuation">(i class="token operator">= class="token number">0class="token punctuation">; i class="token operator">< class="token number">8class="token punctuation">; iclass="token operator">++class="token punctuation">) class="token punctuation">{LED_MATRIX_COLS class="token operator">= class="token operator">~class="token punctuation">(class="token number">1 class="token operator"><< iclass="token punctuation">)class="token punctuation">; class="token comment">// 选择当前列LED_MATRIX_ROWS class="token operator">= led_matrix_bufferclass="token punctuation">[iclass="token punctuation">]class="token punctuation">; class="token comment">// 输出当前列的数据class="token function">delayclass="token punctuation">(class="token number">1class="token punctuation">)class="token punctuation">; class="token comment">// 延时以提供足够的显示时间LED_MATRIX_COLS class="token operator">= class="token number">0xFFclass="token punctuation">; class="token comment">// 关闭所有列࿰c;准备切换到下一列class="token punctuation">}
class="token punctuation">}class="token comment">// 主函数
class="token keyword">void class="token function">mainclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token function">LedMatrix_Initclass="token punctuation">(class="token punctuation">)class="token punctuation">; class="token comment">// 初始化LED点阵led_matrix_bufferclass="token punctuation">[class="token number">0class="token punctuation">] class="token operator">= class="token number">0xaaclass="token punctuation">; class="token comment">// 设置要显示的图案class="token keyword">while class="token punctuation">(class="token number">1class="token punctuation">) class="token punctuation">{class="token function">LedMatrix_Refreshclass="token punctuation">(class="token punctuation">)class="token punctuation">; class="token comment">// 不断刷新LED点阵以显示图案class="token punctuation">}
class="token punctuation">}
code>

其中࿰c;最重要的就是LedMatrix_Refresh函数与<code>led_matrix_buffercode>变量

核心代码解析

<code>led_matrix_buffercode>这个数组每一个元素存一行的led亮灭数据࿰c;我们通过写入他到引脚࿰c;就可以点亮led了

<code>LedMatrix_Refreshcode>函数:

<code class="prism language-c">class="token comment">// LED点阵的刷新函数࿰c;用于更新LED点阵的显示
class="token keyword">void class="token function">LedMatrix_Refreshclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token keyword">unsigned class="token keyword">char iclass="token punctuation">;class="token keyword">for class="token punctuation">(i class="token operator">= class="token number">0class="token punctuation">; i class="token operator">< class="token number">8class="token punctuation">; iclass="token operator">++class="token punctuation">) class="token punctuation">{LED_MATRIX_COLS class="token operator">= class="token operator">~class="token punctuation">(class="token number">1 class="token operator"><< iclass="token punctuation">)class="token punctuation">; class="token comment">// 选择当前列LED_MATRIX_ROWS class="token operator">= led_matrix_bufferclass="token punctuation">[iclass="token punctuation">]class="token punctuation">; class="token comment">// 输出当前列的数据class="token function">delayclass="token punctuation">(class="token number">1class="token punctuation">)class="token punctuation">; class="token comment">// 延时以提供足够的显示时间LED_MATRIX_COLS class="token operator">= class="token number">0xFFclass="token punctuation">; class="token comment">// 关闭所有列࿰c;准备切换到下一列class="token punctuation">}
class="token punctuation">}
code>

这个行数是使用扫描的方式来点亮led的
<code>LED_MATRIX_COLS = ~(1 << i); // 选择当前列code>二进制变化变化:
当i = 0时࿰c;1 << i = 00000001࿰c;取反后~(1 << i) = 11111110
当i = 1时࿰c;1 << i = 00000010࿰c;取反后~(1 << i) = 11111101
当i = 2时࿰c;1 << i = 00000100࿰c;取反后~(1 << i) = 11111011
他进行0~7的扫描࿰c;通过0位的变化࿰c;就可以让有高电平的行亮

然后把<code>led_matrix_buffer[i]code>的数据写入寄存器即可

爱心代码

<code class="prism language-c">class="token macro property">class="token directive-hash">#class="token directive keyword">include class="token string"><regx52.h>class="token comment">// ????????
class="token macro property">class="token directive-hash">#class="token directive keyword">define class="token macro-name">LED_MATRIX_ROWS class="token expression">P2
class="token macro property">class="token directive-hash">#class="token directive keyword">define class="token macro-name">LED_MATRIX_COLS class="token expression">P1class="token keyword">void class="token function">delayclass="token punctuation">(class="token keyword">unsigned class="token keyword">int msclass="token punctuation">) class="token punctuation">{class="token keyword">unsigned class="token keyword">int iclass="token punctuation">, jclass="token punctuation">;class="token keyword">forclass="token punctuation">(i class="token operator">= msclass="token punctuation">; i class="token operator">> class="token number">0class="token punctuation">; iclass="token operator">--class="token punctuation">)class="token keyword">forclass="token punctuation">(j class="token operator">= class="token number">120class="token punctuation">; j class="token operator">> class="token number">0class="token punctuation">; jclass="token operator">--class="token punctuation">)class="token punctuation">;
class="token punctuation">}class="token comment">// 8x8 LED????????
class="token keyword">unsigned class="token keyword">char led_matrix_bufferclass="token punctuation">[class="token number">8class="token punctuation">] class="token operator">= class="token punctuation">{class="token number">0class="token punctuation">}class="token punctuation">;class="token comment">// ?????
class="token keyword">void class="token function">LedMatrix_Initclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token comment">// ???????????LED_MATRIX_ROWS class="token operator">= class="token number">0x00class="token punctuation">;LED_MATRIX_COLS class="token operator">= class="token number">0xFFclass="token punctuation">;
class="token punctuation">}class="token comment">// ??????
class="token keyword">void class="token function">LedMatrix_Refreshclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token keyword">unsigned class="token keyword">char iclass="token punctuation">;class="token keyword">for class="token punctuation">(i class="token operator">= class="token number">0class="token punctuation">; i class="token operator">< class="token number">8class="token punctuation">; iclass="token operator">++class="token punctuation">) class="token punctuation">{LED_MATRIX_COLS class="token operator">= class="token operator">~class="token punctuation">(class="token number">1 class="token operator"><< iclass="token punctuation">)class="token punctuation">; class="token comment">// ?????LED_MATRIX_ROWS class="token operator">= led_matrix_bufferclass="token punctuation">[iclass="token punctuation">]class="token punctuation">; class="token comment">// ????????class="token function">delayclass="token punctuation">(class="token number">1class="token punctuation">)class="token punctuation">; class="token comment">// ??????????????LED_MATRIX_COLS class="token operator">= class="token number">0xFFclass="token punctuation">; class="token comment">// ?????,????????class="token punctuation">}
class="token punctuation">}class="token comment">// ???
class="token keyword">void class="token function">mainclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token function">LedMatrix_Initclass="token punctuation">(class="token punctuation">)class="token punctuation">; class="token comment">// ???LED??led_matrix_bufferclass="token punctuation">[class="token number">0class="token punctuation">] class="token operator">= class="token number">0x00class="token punctuation">; class="token comment">// ?1???led_matrix_bufferclass="token punctuation">[class="token number">1class="token punctuation">] class="token operator">= class="token number">0x66class="token punctuation">; class="token comment">// ?2???led_matrix_bufferclass="token punctuation">[class="token number">2class="token punctuation">] class="token operator">= class="token number">0xFFclass="token punctuation">; class="token comment">// ?3???led_matrix_bufferclass="token punctuation">[class="token number">3class="token punctuation">] class="token operator">= class="token number">0xFFclass="token punctuation">; class="token comment">// ?4???led_matrix_bufferclass="token punctuation">[class="token number">4class="token punctuation">] class="token operator">= class="token number">0x7Eclass="token punctuation">; class="token comment">// ?5???led_matrix_bufferclass="token punctuation">[class="token number">5class="token punctuation">] class="token operator">= class="token number">0x3Cclass="token punctuation">; class="token comment">// ?6???led_matrix_bufferclass="token punctuation">[class="token number">6class="token punctuation">] class="token operator">= class="token number">0x18class="token punctuation">; class="token comment">// ?7???led_matrix_bufferclass="token punctuation">[class="token number">7class="token punctuation">] class="token operator">= class="token number">0x00class="token punctuation">; class="token comment">// ?8???class="token keyword">while class="token punctuation">(class="token number">1class="token punctuation">) class="token punctuation">{class="token function">LedMatrix_Refreshclass="token punctuation">(class="token punctuation">)class="token punctuation">; class="token comment">// ????class="token punctuation">}
class="token punctuation">}
code>

c="https://img-blog.csdnimg.cn/direct/cc666f2efe27457ba8f6352ca067d954.png" alt="在这里插入图片描述" />

滚动

<code class="prism language-c">class="token macro property">class="token directive-hash">#class="token directive keyword">include class="token string"><regx52.h>class="token comment">// ????????
class="token macro property">class="token directive-hash">#class="token directive keyword">define class="token macro-name">LED_MATRIX_ROWS class="token expression">P2
class="token macro property">class="token directive-hash">#class="token directive keyword">define class="token macro-name">LED_MATRIX_COLS class="token expression">P1class="token keyword">void class="token function">delayclass="token punctuation">(class="token keyword">unsigned class="token keyword">int msclass="token punctuation">) class="token punctuation">{class="token keyword">unsigned class="token keyword">int iclass="token punctuation">, jclass="token punctuation">;class="token keyword">forclass="token punctuation">(i class="token operator">= msclass="token punctuation">; i class="token operator">> class="token number">0class="token punctuation">; iclass="token operator">--class="token punctuation">)class="token keyword">forclass="token punctuation">(j class="token operator">= class="token number">120class="token punctuation">; j class="token operator">> class="token number">0class="token punctuation">; jclass="token operator">--class="token punctuation">)class="token punctuation">;
class="token punctuation">}class="token comment">// 8x8 LED????????
class="token keyword">unsigned class="token keyword">char led_matrix_bufferclass="token punctuation">[class="token number">8class="token punctuation">] class="token operator">= class="token punctuation">{class="token number">0class="token punctuation">}class="token punctuation">;class="token comment">// ?????
class="token keyword">void class="token function">LedMatrix_Initclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token comment">// ???????????LED_MATRIX_ROWS class="token operator">= class="token number">0x00class="token punctuation">;LED_MATRIX_COLS class="token operator">= class="token number">0xFFclass="token punctuation">;
class="token punctuation">}class="token comment">// ??????
class="token keyword">void class="token function">LedMatrix_Refreshclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token keyword">unsigned class="token keyword">char iclass="token punctuation">;class="token keyword">for class="token punctuation">(i class="token operator">= class="token number">0class="token punctuation">; i class="token operator">< class="token number">8class="token punctuation">; iclass="token operator">++class="token punctuation">) class="token punctuation">{LED_MATRIX_COLS class="token operator">= class="token operator">~class="token punctuation">(class="token number">1 class="token operator"><< iclass="token punctuation">)class="token punctuation">; class="token comment">// ?????LED_MATRIX_ROWS class="token operator">= led_matrix_bufferclass="token punctuation">[iclass="token punctuation">]class="token punctuation">; class="token comment">// ????????class="token function">delayclass="token punctuation">(class="token number">1class="token punctuation">)class="token punctuation">; class="token comment">// ??????????????LED_MATRIX_COLS class="token operator">= class="token number">0xFFclass="token punctuation">; class="token comment">// ?????,????????class="token punctuation">}
class="token punctuation">}class="token keyword">void class="token function">rollclass="token punctuation">(class="token punctuation">)
class="token punctuation">{class="token keyword">unsigned class="token keyword">char i class="token operator">= class="token number">0class="token punctuation">;class="token keyword">unsigned class="token keyword">char temp class="token operator">= led_matrix_bufferclass="token punctuation">[class="token number">0class="token punctuation">]class="token punctuation">;class="token keyword">for class="token punctuation">(i class="token operator">= class="token number">0class="token punctuation">; i class="token operator">< class="token number">7class="token punctuation">; iclass="token operator">++class="token punctuation">) class="token punctuation">{led_matrix_bufferclass="token punctuation">[iclass="token punctuation">] class="token operator">= led_matrix_bufferclass="token punctuation">[i class="token operator">+ class="token number">1class="token punctuation">]class="token punctuation">;class="token punctuation">}led_matrix_bufferclass="token punctuation">[class="token number">7class="token punctuation">] class="token operator">= tempclass="token punctuation">;
class="token punctuation">}class="token comment">// ???
class="token keyword">void class="token function">mainclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token function">LedMatrix_Initclass="token punctuation">(class="token punctuation">)class="token punctuation">; class="token comment">// ???LED??led_matrix_bufferclass="token punctuation">[class="token number">0class="token punctuation">] class="token operator">= class="token number">0x00class="token punctuation">; class="token comment">// ?1???led_matrix_bufferclass="token punctuation">[class="token number">1class="token punctuation">] class="token operator">= class="token number">0x66class="token punctuation">; class="token comment">// ?2???led_matrix_bufferclass="token punctuation">[class="token number">2class="token punctuation">] class="token operator">= class="token number">0xFFclass="token punctuation">; class="token comment">// ?3???led_matrix_bufferclass="token punctuation">[class="token number">3class="token punctuation">] class="token operator">= class="token number">0xFFclass="token punctuation">; class="token comment">// ?4???led_matrix_bufferclass="token punctuation">[class="token number">4class="token punctuation">] class="token operator">= class="token number">0x7Eclass="token punctuation">; class="token comment">// ?5???led_matrix_bufferclass="token punctuation">[class="token number">5class="token punctuation">] class="token operator">= class="token number">0x3Cclass="token punctuation">; class="token comment">// ?6???led_matrix_bufferclass="token punctuation">[class="token number">6class="token punctuation">] class="token operator">= class="token number">0x18class="token punctuation">; class="token comment">// ?7???led_matrix_bufferclass="token punctuation">[class="token number">7class="token punctuation">] class="token operator">= class="token number">0x00class="token punctuation">; class="token comment">// ?8???class="token keyword">while class="token punctuation">(class="token number">1class="token punctuation">) class="token punctuation">{class="token function">LedMatrix_Refreshclass="token punctuation">(class="token punctuation">)class="token punctuation">; class="token comment">// ????class="token function">delayclass="token punctuation">(class="token number">10class="token punctuation">)class="token punctuation">;class="token function">rollclass="token punctuation">(class="token punctuation">)class="token punctuation">;class="token punctuation">}
class="token punctuation">}
code>

总结

通过本文的学习࿰c;我们了解了如何使用Proteus软件和class="tags" href="/51DanPianJi.html" title=51class="tags" href="/DanPianJi.html" title=单片机>单片机>51class="tags" href="/DanPianJi.html" title=单片机>单片机来驱动一个8x8的LED点阵显示器。我们学习了LED点阵显示器的工作原理࿰c;掌握了硬件连接和软件编程的方法࿰c;还通过实际的示例代码࿰c;深入了解了这个过程。

虽然本文的内容可能对初学者来说有些复杂࿰c;但只要我们耐心学习࿰c;不断实践࿰c;就一定能够掌握这些知识。同时࿰c;我们也应该注意࿰c;学习嵌入式系统开发不仅仅是学习编程和电路设计࿰c;更重要的是学习解决问题的方法和思维方式。

希望本文能够帮助你入门Proteus和class="tags" href="/51DanPianJi.html" title=51class="tags" href="/DanPianJi.html" title=单片机>单片机>51class="tags" href="/DanPianJi.html" title=单片机>单片机的学习࿰c;为你的嵌入式系统开发之旅打下坚实的基础。如果你在学习过程中遇到任何问题࿰c;或者有任何建议和反馈࿰c;欢迎随时与我们联系。祝你学习愉快࿰c;期待你在嵌入式系统开发的道路上取得更大的进步!

class="blog-extension-box">

http://www.ppmy.cn/ops/53488.html

相关文章

Pbootcms留言“提交成功”的提示语怎么修改

我们在用到pbootcms建站时候&#xff0c;其中有个留言功能&#xff0c;提交成功后会提示&#xff1a;提交成功&#xff08;如下图所示&#xff09;&#xff0c;那么我们要修改这个提示语要怎么操作呢&#xff1f; 如果需要修改的话&#xff0c;直接找到文件/apps/home/control…

File encoding has not been set,using platform encoding UTF-8,i.e.build is pl

这个报错信息通常出现在使用像Maven这样的构建工具时&#xff0c;提示你没有为项目设置文件编码格式&#xff0c;并且默认使用平台编码UTF-8。 解决方法&#xff1a; 在项目的根目录下&#xff0c;查找pom.xml文件。 在<properties>标签中&#xff0c;添加以下内容来指…

android-aidl5

aidl类是实现Manager和Service通信的桥梁。 例如在修改Android Wifi功能的时候看到WifiManager管理WifiService&#xff1b; AIDL是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口。 比如onclick&#xff08;&#xff09;&#xff0c;用oneway修…

Java基础(五)——ArrayList

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 ⚡开源项目&#xff1a; rich-vue3 &#xff08;基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL&#xff09; &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1…

Python使用彩虹表来尝试对MD5哈希进行破解

MD5是一种散列算法&#xff0c;它是不可逆的&#xff0c;无法直接解密。它的主要作用是将输入数据进行散列&#xff0c;生成一个固定长度的唯一哈希值。 然而&#xff0c;可以使用预先计算好的MD5哈希值的彩虹表&#xff08;Rainbow Table&#xff09;来尝试对MD5进行破解。彩…

前端:Vue中使用JS-Cookie

在我们构建Vue站点时候&#xff0c;可能需要使用 cookie 来记录用户信息或者偏好设置&#xff0c;我们可以引入第三方库 GitHub - js-cookie/js-cookie: A simple, lightweight JavaScript API for handling browser cookies 来方便地操作 cookie。接下来我们就来一步一步地实…

(13)DroneCAN 适配器节点(二)

文章目录 前言 2 固件 2.1 基于F103 2.2 基于F303 2.3 基于F431 3 ArduPilot固件DroneCAN设置 3.1 f303-通用设置示例 4 DroneCAN适配器节点 前言 这些节点允许现有的 ArduPilot 支持的外围设备作为 DroneCAN 或 MSP 设备适应 CAN 总线。这也允许扩展自动驾驶仪硬件的…

【SQL】数据操作语言(DML) - 删除数据:精细管理数据的利刃

目录 前言 DELETE语句的基础使用 删除指定记录 清空表与删除表数据的区别 注意 前言 在数据库管理的日常工作中&#xff0c;数据的删除是一项需要格外小心的操作&#xff0c;因为一旦数据被删除&#xff0c;往往难以恢复。数据操作语言(DML)中的DELETE语句&am…