tag 标签: 单片机

相关博文
  • 2025-2-10 18:16
    0 个评论
    今天我们深入探索的是SIM卡,SIM卡接口用于连接SIM卡并读取SIM卡信息,以便在注册4G网络时进行鉴权身份验证,是4G通信系统的必要功能。 怎么进行SIM卡电路设计呢?本文应各位朋友相邀,特别分享SIM卡接口功能及其电路设计相关注意事项。 一、SIM卡接口功能描述 Air700ECQ/Air700EAQ/Air700EMQ系列模组支持1路USIM接口,符合ETSI和IMT-2000规范,可自适应支持1.8V和3.3V USIM卡。 注意:因为超小超薄系列设计取向为尺寸超小,所以无法在硬件上同时支持移动、电信和联通,三大运营商分三个不同的版本。 Air700ECQ:支持中国移动; Air700EAQ:支持中国电信; Air700EMQ:支持中国联通。 最新开发资料详见: https://docs.openluat.com/ 1.SIM卡相关管脚 SIM卡信号相关管脚,详见下方图表: 2.SIM卡电气特性 - 支持SIM卡类型:1.8V/3.3V USIM卡; - 支持协议:ETSI/IMT-2000; - SIM卡在位检测:支持; 3. SIM卡时序 激活时序: 当SIM卡的触点接通序列结束后(RST处于低电平,VCC稳定供电,ME的I/O处于接收状态,VPP被置为空闲状态,CLK提供适当的、稳定的时钟),SIM卡准备复位。 如下图所示: 时钟信号在T0时刻加到CLK触点,I/O总线在时钟信号加到CLK触点200个时钟周期(T0时刻之后的t2时间段)之内应该处于高阻状态; 内部复位的SIM卡,在几个时钟周期之后开始复位,复位应答应该在400~40000个时钟周期内开始(T0时刻之后的t1时间段之内); 低电平复位的SIM卡的复位信号至少在40000个时钟周期内RST触点维持低电平(T0之后的t3时间段内),如果在40000个时钟周期内没有复位应答,则RST触点被置为高电平; I/O端的复位应答必须在RST上升沿开始的400~40000个时钟周期内开始(T1时刻之后的t1时间段之内); 如果复位应答在400~40000个时钟周期内没有开始(T1时刻之后的t3时间段之内),则RST触点的电平将被置为低电平(在T2时刻),触点也将被ME释放。 二、SIM卡接口电路设计指导 常用的SIM卡参考设计及注意事项如下,在应用中注意结合实际情况优化调整: ▼ 常用SIM卡参考设计 ▼ 设计注意事项: SIM卡座与模组距离摆件不能太远,越近越好,尽量保证SIM卡信号线布线不超过20cm。 SIM卡信号线布线远离RF线和VBAT电源线。 为了防止可能存在的USIM_CLK信号对USIM_DATA信号的串扰,两者布线不要太靠近,在两条走线之间增加地屏蔽。且对USIM_RST_N信号也需要地保护。 为了保证良好的ESD保护,建议加TVS管,并靠近SIM卡座摆放。选择的ESD器件寄生电容不大于50pF。在模组和SIM卡之间也可以串联22欧姆的电阻用以抑制杂散EMI,增强ESD防护。SIM卡的外围电路必须尽量靠近SIM卡座。 三、SIM卡常见问题 在出现SIM卡不识别卡时,测量SIM卡供电VDD_SIM,总是发现VDD_SIM为低电平? 原因解析: SIM卡在初始化时,系统会尝试4次与SIM卡交互。此时VDD_SIM也会打开4次,分别在1.8V和3.3V交替检测,若检测不到SIM卡,VDD_SIM卡就会关闭,如下图: 因此在检测不到SIM卡的情况下,USIM_VDD总是低电平。 设计建议: VDD_SIM不输出不是SIM卡不识别的原因,而是结果;SIM卡上任何一个信号异常,均会导致VDD_SIM自动关闭。 今天的内容就分享到这里~
  • 2025-2-10 18:11
    0 个评论
    本篇文章以Air724UG模组为例,解读低功耗4G模组软件的语音通话,呈现实用教程供大家参考。 一、音频应用-通话(VoLTE)概述 Air724UG模块的4G通信功能,通过VoLTE技术实现高清语音通话。 在通话过程中,声音信号通过 MIC 捕捉并转换为数字音频数据,经4G网络实时传输至对方设备。同时,Air724UG 支持扬声器(Speaker)输出、耳机(Headset)输出以及听筒(Handset)输出等多种音频输出模式,确保用户在不同场景下都能获得清晰的通话体验。 这一应用广泛适用于物联网设备中的远程通信、语音交互等场景,为用户提供便捷、高效的通话服务。 二、准备硬件环境 古人云:工欲善其事,必先利其器。在深入介绍本功能示例之前,我们首先需要确保以下硬件环境的准备工作已经完成。 2.1 Air724UG 开发板 本 demo 使用的是 Air724UG_A14 开发板,如下图所示: 此开发板的详细使用说明参考: https://docs.openluat.com/air724ug/product/ Air724UG 产品手册中的开发板硬件资料中《EVB_Air724UG_A14 开发板使用说明.pdf》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明 pdf 文档。 2.2 SIM 卡 请准备一张可正常上网的SIM卡,该卡可以是物联网卡(一般不能支持)或您的个人手机卡。 特别提醒: 请确保SIM卡未欠费且网络功能正常,以便顺利进行后续操作。 2.3 PC 电脑 请准备一台配备 USB 接口且能够正常上网的电脑。 电脑操作系统为: WIN7以及以上版本的WINDOWS系统。 2.4 小喇叭 2.5 数据通信线 请准备一根用于连接 EVB_Air724UG_A14 开发板和 PC 电脑的数据线,该数据线将实现业务逻辑的控制与交互。 USB 数据线:此数据线不仅用于为测试板供电,还用于查看数据日志。其一端为 Micro-B 接口(俗称老安卓口),用于连接 EVB_Air724UG_A14 开发板;另一端为标准 USB 接口,连接 PC 电脑。 2.6 组装硬件环境 2.6.1 请按 SIM 卡槽指示方向正确插入 SIM 卡,避免插反损坏 通常,插入 SIM 卡的步骤如下: 将 SIM 卡的金属卡槽下滑打开。 平稳地将 SIM 卡放入卡槽。 上滑关闭卡槽。 2.6.2 USB 数据线,连接电脑和 EVB_Air724UG_A14 开发板,如下图所示: 2.6.3 小喇叭和 EVB_Air724UG_A14 开发板连接,如下图所示: 三、准备软件环境 “凡事预则立,不预则废。”在详细阐述本功能示例之前,我们需先精心筹备好以下软件环境。 3.1 Luatools 工具 要想烧录 LuatOS 固件到 4G 模组中,需要用到的调试工具:Luatools; 下载地址: https://docs.openluat.com/Luatools/ Luatools 工具集具备以下几大核心功能: 一键获取最新固件:自动连接服务器,轻松下载最新的模组固件。 固件与脚本烧录:便捷地将固件及脚本文件烧录至目标模组中。 串口日志管理:实时查看模组通过串口输出的日志信息,并支持保存功能。 串口调试助手:提供简洁的串口调试界面,满足基本的串口通信测试需求。 Luatools 下载之后, 无需安装,放入新建的文件夹后点击 Luatools_v3.exe 运行,出现如下界面,就代表 Luatools 安装成功了: 3.2 烧录代码 首先要说明一点:脚本代码, 要和固件的 LuatOS-Air_V4030_RDA8910_TTS_NOLVGL_FLOAT.pac(注:支持 LCD,字库,图片,TTS,WIFI Scan,SD 卡,VOLTE) 文件一起烧录。 整体压缩文件:内含有四个文件,如图所示。 3.2.1 压缩文件:完整文件包 https://docs.openluat.com/air724ug/luatos/app/audio/volte/ 3.2.2找到烧录的固件文件 官网下载,底层 core 下载地址: https://docs.openluat.com/air724ug/luatos/firmware/ 3.2.3正确连接电脑和 4G 模组电路板 使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线; 3.2.4识别 4G 模组的 BOOT 引脚 在下载之前,要用模组的 BOOT 引脚触发下载。 具体到 EVB_Air724UG_A14 开发板: 当我们模块没开机时,按着下载模式键然后长按开机键开机。 当我们模块开机时,按着下载模式键然后点按重启键即可。 3.2.5识别电脑的正确端口 判断是否进入 BOOT 模式: 模块上电,如果是正常开机运行(没有进入boot下载模式),此时在电脑的设备管理器中,查看串口设备,如下图所示(会出现3个或者4个端口): 先按下载模式再按一下重启,会出现一个端口表示进入了 BOOT 下载模式,如下图所示: 一旦进入了boot下载模式,表示硬件连接上已经处于就绪状态,此时就可以使用Luatools工具进行烧录了! 3.2.6新建项目 首先,确保你的 Luatools 的版本大于或者等于 3.0.6 版本. 在 Luatools 的左上角上有版本显示的,如图所示: Luatools 版本没问题的话, 就点击 Luatools 右上角的“项目管理测试”按钮,如下图所示: 这时会弹出项目管理和烧录管理的对话框,如下图: 3.2.7开始烧录 选择 Air724ug 开发板对应的底层 core 和 main.lua 脚本文件。下载到板子中。 一直按下载模式按键,再按一下重启,然后点击下载底层和脚本,如图所示: 出现如图所示,表示已进入 BOOT 模式,可以松开下载模式按键,等待下载完成。 下载完成,如图所示 四、音频应用-通话(VoLTE)基本用法 4.1 本教程实现的功能定义: CC 库在 EVB_Air724UG_A14-LuatOS 中扮演了关键角色,它提供了一种高效、灵活且用户友好的呼叫控制解决方案。本次介绍的目标是帮助开发者迅速了解并精通 CC 库的 API 接口,以便在 VoLTE 通话中实现精确的呼叫管理和控制功能。 4.2 文章内容引用 EVB_Air724UG_A14 开发板软硬件资料 : EVB_Air724UG_A14 产品手册:https://docs.openluat.com/air724ug/product/ 以下接口函数不做详细介绍,可通过此链接查看具体介绍: audio_API: https://doc.openluat.com/wiki/21?wiki_page_id=2327#API_9 4.3 API 接口详解 4.3.1 cc.anyCallExist() 解说:cc.anyCallExist 用于检查当前是否存在任何活动的通话。这个 API 不需要任何参数。 参数: 无 返回值: 布尔值(true 或 false):如果存在活动的通话,则返回 true;否则返回 false。 举例: 4.3.2 cc.getState(num) 解说:cc.getState 用于获取指定通话的状态。它接收一个通话标识符(可能是通话句柄或电话号码,具体取决于实现)作为参数,并返回一个表示通话状态的值(通常是枚举或常量)。 参数: num:通话标识符(电话号码)。 返回值: 通话状态值(枚举或常量):表示指定通话的当前状态,如空闲、来电、正在拨打、已接通、保持等。 举例: 4.3.3 cc.dial(num, delay) 解说:cc.dial 用于拨打一个电话号码。它接收两个参数:要拨打的电话号码和一个可选的延迟时间(以秒为单位),在拨打之前可以等待一段时间。 参数: num:要拨打的电话号码。 delay(可选):可选参数,默认为0延时 delay 毫秒后,才发起呼叫。 返回值: bool result,true 表示允许发送 at 命令拨号并且发送 at,false 表示不允许 at 命令拨号。 举例: 4.3.4 cc.hangUp(num) 解说:cc.hangUp 用于挂断指定通话。它通常接收一个通话标识符(如通话句柄或电话号码)作为参数,尽管在某些实现中可能不需要参数(如果只有一个活动通话)。 参数: num(可选):号码,若指定号码通话状态不对,则直接退出,不会执行挂断,若挂断时会挂断所有电话。 返回值: 无。 举例: 4.3.5 cc.dtmfDetect(enable, sens) 解说:cc.dtmfDetect 用于启用或禁用双音多频(DTMF)信号的检测。它接收两个参数:一个布尔值表示是否启用检测,以及一个可选的灵敏度值。 参数: enable:可选参数,默认为niltrue 使能,false 或者 nil 为不使能。 sens(可选):可选参数,默认为3灵敏度,最灵敏为 1。 返回值: 无。 举例: 4.3.6 cc.accept(num) 解说:cc.accept 用于接听传入的通话。它通常接收一个通话标识符作为参数,尽管在某些实现中可能不需要(因为通常只有一个传入的通话等待接听)。 参数: num(可选):号码,若指定号码通话状态不对,则直接退出,不会接通。 返回值: 无 举例: 4.3.7 cc.transVoice(data, loop, downLinkPlay) 解说:cc.transVoice 通话中发送声音到对端,必须是 12.2K AMR 格式。 参数: data:12.2K,AMR 格式的数据。 loop:可选参数,默认为nil是否循环发送,true 为循环,其余为不循环。 downLinkPlay:可选参数,默认为nil声音是否在本端播放,true 为播放,其余为不播放。 返回值: 布尔值或状态码:表示传输操作是否成功启动。具体返回值可能因实现而异。 举例: 4.3.8 cc.sendDtmf(str, playtime, intvl) 解说:cc.sendDtmf 用于在通话中发送双音多频(DTMF)信号。它接收三个参数:一个包含 DTMF 字符的字符串,每个字符的播放时间,以及字符之间的间隔。 参数: str:dtmf 字符串,仅支持数字、ABCD*#。 playtime:可选参数,默认为100每个 dtmf 播放时间,单位毫秒。 intvl:可选参数,默认为100两个 dtmf 间隔,单位毫秒。 返回值: 无 举例 五、音频应用整体演示 5.1 音频应用-录音成果演示与深度解析:视频 + 图文全面展示 5.1.11完整实例深度剖析 六、总结 CC 库的通话管理 API 接口共同构成了通话控制的核心功能,使开发者能够高效地管理通话的启动、挂断、接听、参数配置以及附加的通话处理功能。通过合理利用这些接口,开发者可以构建出具备出色通话体验的应用程序,满足用户在多种通话场景下的需求。同时,也需关注接口之间的协同配合,以确保通话功能的流畅性和可靠性。 七、常见问题 打不了电话,确认能不能正常注册上网络,有没有欠费。确认卡是否开通 VOLTE 功能, 只有开通 VOLTE 功能才能进行语音通话。固件是否支持 VOLTE 功能,固件需要支持 VOLTE 功能。注:建议使用手机卡测试,普通物联网卡可能不支持 VOLTE 功能。 audio.setMicGain()通话中设置 mic 增益,必须在通话建立以后设置。 暂不支持视频通话,且因为只有 30W 像素,效果较差。 八、扩展 通话过程中给对端播放音频文件:demo 有案例打开代码中注掉的部分即可进行测试,如图所示。 分享完毕
  • 2025-2-10 17:57
    0 个评论
    今天是以Air724UG模组为例,轻松攻克低功耗4G模组软件的FTP示例。 一、简介 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。 FTP 协议包括两个组成部分,其一为 FTP 服务器,其二为 FTP 客户端。其中 FTP 服务器用来存储文件,用户可以使用 FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源。在开发网站的时候,通常利用 FTP 协议把网页或程序传到 Web 服务器上。此外,由于 FTP 传输效率非常高,在网络上传输大的文件时,一般也采用该协议。 默认情况下 FTP 协议使用 TCP 端口中的 20 和 21 这两个端口,其中 20 用于传输数据,21 用于传输控制信息。但是,是否使用 20 作为传输数据的端口与 FTP 使用的传输模式有关,如果采用主动模式,那么数据传输端口就是 20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。 二、演示功能概述 本教程教你如何使用开发板登录 FTP 服务器访问服务器资源。 功能定义: 1、登录 FTP 服务器 2、读取服务器上的文件资源 3、在 FTP 服务器上创建目录 三、准备硬件环境 3.1 开发板准备 使用 EVB_Air724 开发板,如下图所示: 此开发板的详细使用说明参考: https://docs.openluat.com/air724ug/product/ Air724UG 产品手册中的《EVB_Air724UG_AXX 开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14 开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。 api文档: https://doc.openluat.com/wiki/21?wiki_page_id=2068 3.2 数据通信线 USB 数据线一根(micro USB) 3.3 PC 电脑 WIN7 以及以上版本的 WINDOWS 系统。 3.4 SIM 卡 中国大陆环境下,可以上网的 SIM 卡。一般来说,使用移动,电信,联通的物联网卡或者手机卡都行。 3.5 组装硬件环境 USB 数据线插入 USB 口,另一端与电脑相连,拨码开关全部拨到 ON,串口切换开关选择 UART1,USB 供电的 4V 对应开关拨至 ON 档,SIM 卡放到 SIM 卡槽中锁紧,如下图所示。 四、准备软件环境 4.1 下载调试工具 使用说明参考: Luatools下载和详细使用: https://docs.openluat.com/Luatools/ 4.2 源码及固件 1)底层 core 下载 下载底层固件,并解压 链接: https://docs.openluat.com/air724ug/luatos/firmware/ 如下图所示,红框的是我们要使用到的 本教程使用的 demo 见附件: https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/ftp 4.3 下载固件和脚本到开发板中 打开 Luatools,开发板上电开机,如开机成功 Luatools 会打印如下信息。 点击项目管理测试选项。 进入管理界面,如下图所示。 点击选择文件,选择底层固件,我的文件放在 D:luatOSAir724 路径中 点击增加脚本或资源文件,选择之前下载的程序源码,如下图所示。 点击下载底层和脚本,下载完成如下图所示。 4.4 FTP 服务器 本文测试用的服务器的地址,端口号,用户名,密码为: "121.43.224.154",21,"ftp_user","3QujbiMG"。 如果使用其他服务器请自行修改。 五、代码示例介绍 5.1 API 说明 ftp 的 API 在 LuatOS lib 有做封装,建议直接用 lib 的 API 接口。 5.2 ftp_test.lua 代码 系统启动后演示 5 秒,登录 FTP 服务器,等待登录成功后,查看服务器信息、显示目录下文件、显示文件详细信息、显示工作目录、创建目录等操作。 下载 ftp 服务器的文件至 sd 卡目录,/1040K.jpg", "/sdcard0/1040K.jpg" 从 sd 卡目录上传文件至服务器,/sdcard0/ftp_lib_test_up.txt" 在 ftp_test.lua 这个文件中将登录中的地址,端口号,用户名,密码等必要信息修改为自己服务器的。 5.3 main.lua 代码 本代码为主程序脚本,系统启动后首先会对 4G 网络进行配置,然后加载 FTP 测试模块。 六、开机调试 6.1 开发板开机 连接好硬件并下载固件后,启动 Luatools 软件,系统运行信息将显示在界面中。红框中为开发板连接到 PC 机后正常打印的信息,如下图所示。 6.2 FTP 调试 FTP 登录服务器,并且获取信息。 显示目录下的文件 创建目录/ftp_test 下载 ftp 服务器的文件 下载成功返回 200。 下载前 FTP 服务器的数据如下: 下载文件的打印日志信息: 上传文件至服务器 上传成功返回 200。 上传成功后 FTP 服务器的数据如下: 上传文件打印日志信息: 七、常见问题 7.1 关于不支持主动模式: 模块 ftp 默认是被动模式,不支持主动模式,无法设置主动模式,公网下要想模块正常连接服务器,服务器肯定不能设置为主动模式,否则哪家模块都不能用。 7.2 发送带 0x0d 0x0a 这些数据会丢失 需要通过 ftp.checktype(“I”,0)设置为二进制方式传输文件,否则传输过程中会丢弃换行符。
  • 2025-2-10 17:50
    0 个评论
    本篇文章说的是Air724UG低功耗模组软件的NTP,我以整理成示例供大家快速参考。 一、简介 网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS 等等)做同步化,它可以提供高精准度的时间校正(LAN 上与标准间差小于 1 毫秒,WAN 上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP 的目的是在无序的 Internet 环境中提供精确和健壮的时间服务。 二、演示功能概述 本教程教你如何使用开发板功能模块采用多个免费公共的 NTP 服务器来同步时间,但并不能保证任何时间任何地点都能百分百同步到正确的时间。所以,如果用户项目中的业务逻辑严格依赖于时间同步功能,则不要使用使用本功能模块,建议使用自己的应用服务器来同步时间。 三、准备硬件环境 3.1 开发板准备 使用 EVB_Air724 开发板,如下图所示: 此核心板的详细使用说明参考: https://docs.openluat.com/air724ug/product/ Air724UG 产品手册中的《EVB_Air724UG_AXX 开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14 开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。 api文档: https://doc.openluat.com/wiki/21?wiki_page_id=2068 3.2 数据通信线 USB 数据线一根(micro USB) 3.3 PC 电脑 WIN7 以及以上版本的 WINDOWS 系统 3.4 SIM 卡 中国大陆环境下,可以上网的 SIM 卡。一般来说,使用移动,电信,联通的物联网卡或者手机卡都行。 3.5 组装硬件环境 USB 数据线插入 USB 口,另一端与电脑相连,拨码开关全部拨到 ON,串口切换开关选择 UART1,USB 供电的 4V 对应开关拨至 ON 档,SIM 卡放到 SIM 卡槽中锁紧,如下图所示。 四、准备软件环境 4.1 下载调试工具 使用说明参考: Luatools下载和详细使用 https://docs.openluat.com/Luatools/ 4.2 源码及固件 1) 底层 core 下载 下载底层固件,并解压 链接: https://docs.openluat.com/air724ug/luatos/firmware/ 如下图所示,红框的是我们要使用到的 2) 本教程使用的 demo 见附件: https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/ntp 4.3 下载固件和脚本到开发板中 打开 Luatools,开发板上电开机,如开机成功 Luatools 会打印如下信息。 点击项目管理测试选项。 进入管理界面,如下图所示。 点击选择文件,选择底层固件,我的文件放在 D:luatOSAir724 路径中 点击增加脚本或资源文件,选择之前下载的程序源码,如下图所示。 点击下载底层和脚本,下载完成如下图所示。 五、代码示例介绍 5.1 API 说明 ntp.timeSync(period, fnc, fun) ntp 同步时间任务. 重要提醒!!!!!! 本功能模块采用多个免费公共的 NTP 服务器来同步时间, 并不能保证任何时间任何地点都能百分百同步到正确的时间。 所以,如果用户项目中的业务逻辑严格依赖于时间同步功能, 则不要使用本功能模块,建议使用自己的应用服务器来同步时间。 例子 5.2 testNtp.lua 代码 调用 ntp.timeSync()接口同步时间。ntp.timeSync()#同步一次时间 注意:本功能模块采用多个免费公共的 NTP 服务器来同步时间并不能保证任何时间任何地点都能百分百同步到正确的时间所以,如果用户项目中的业务逻辑严格依赖于时间同步功能则不要使用使用本功能模块,建议使用自己的应用服务器来同步时间 调用 misc.getClock()接口获取系统时间 5.3 main.lua 代码 本代码为主程序脚本,系统启动后首先会对 4G 网络进行配置,等待网络连接成功,然后加载 NTP 测试模块。 六、开机调试 6.1 开发板开机 连接好硬件并下载固件后,启动 Luatools 软件,系统运行信息将显示在界面中。红框中为开发板连接到 PC 机后正常打印的信息,如下图所示。 6.2 NTP 调试 开机启动后,ntp.timeSync()#同步一次时间,然后每隔一秒调用 misc.getClock()接口获取系统时间。 七、常见问题 7.1 os.time()返回值,需不需要特别加载模块? 返回从 1970 年 1 月 1 日到指定日期的时间的秒数,无参数表示当前时间。不需要添加操作,直接可以获取。 os.date 这个 api 只支持 os.date(“*t”) 这样用,不能 os.date(‘%Y-%m-%d %H:%M:%S’) 这样用? 是的,不支持。可以按如下方式处理 7.2 ntp 同步时间后,这个 clock 精度高吗,需要多久同步一次 并不能保证任何时间任何地点都能百分百同步到正确的时间。所以,如果用户项目中的业务逻辑严格依赖于时间同步功能 则不要使用本功能模块,建议使用自己的应用服务器来同步时间。 7.3 ntp.timeSync(24,fnc)时间同步说明 立即同步一次,之后每隔 24 小时自动同步一次,每次同步结束后执行 fnc(time,result) 7.4 ntp.timeSync() 请问这个函数是异步执行的还是执行完成之后,其后的代码才会执行? 获取时间是通过 sys.taskInit 创建一个时间任务来同步时间的,模块会随机尝试访问每一个 NTP 服务器,尝试 1 次,如果成功,如果不需循环同步时间,则退出当前线程,运行别的代码,否则同通过 sys.wait(period)挂起当前任务循环同步时间,运行别的代码,时间到之后重新运行当前任务。如果失败,通过 sys.wait(1000)挂起当前任务 1 秒,运行别的代码,1 秒时间到,在尝试访问下一个服务器,循环操作,直到同步时间成功,或服务器全部访问结束,之后按照成功之后的动作执行。 7.5 有个这个函数后 ntp.timeSync(1) 每次在程序中调用 os.time 也是实时时间了吗? 是的,只要时间同步成功了,就是实时时间了。
  • 2025-2-9 22:07
    135 次阅读|
    0 个评论
    前言 在这个被学历紧密裹挟的时代,“读书无用论” 的杂音偶尔还会冒出来扰乱视听。 但请坚信,教育始终是为人生添砖加瓦最有力的途径。身为一名大专在读生,在参与各类比赛以及和优秀院校同学交流互动的过程中,我对大专与本科之间的差异有了更切实的感悟,所以我想根据2024年一整年的经历还有感受,和大家分享一下为什么我觉得上一个好的大学是对成长有非常大的帮助 一年中最大的感悟(必看) https://mbb.eet-china.com/blog/4067534-463118.html 学习总结:又多又杂 2024年主要学习到Arduino、keil5等平台 主要用到arduino uno搭配机智云的拓展板、ESP32/ESP8266、STM32/GD32、ML307A、51单片机 好像都学习了一段时间,将外设什么的用上之后,然后再学串口、spi、iic等,再多一些老掉牙的小项目,然后又去玩下一款芯片 不知道为什么陷入了购买板子的热潮当中,虽然自己的板子已经够多了,但是还是想要买买买 2024年主要还是各种芯片的熟悉,然后偶尔做一点小项目,没有什么大的项目进展 但是已经由arduino逐渐转到keil5,已经从业余逐渐有点到专业的过程了 但是业余转到专业的过程不是那么简单的,所以只能购置了一大堆设备,有用的没用的,贵的便宜的,买了很多设备 示波器、可调电源、电烙铁、万用表、mini加热台 也说不上“差生文具多”这些东西还真挺有用的,可以帮我学到更多东西,而且工具很一点总是没毛病的,但是花的钱就多了 有了示波器和可调电源就可以学到一些驱动的开发,还有一些调试,用的最多的还是测试传感器工作情况 学习到SPI、IIC、串口等一些常用的通信协议,也感觉良好,虽然学这些东西挺无聊的(习惯调用库的结果) 也算是终于摆脱对库的依赖吧,也不算摆脱,只是平时在遇到新的传感器的时候,就会去找相关的开发文档,看看是怎么工作的,尝试自己写一下驱动 要是以前就直接去找库了,虽然方便,但是总感觉没什么意义 参加活动:增长见识 2024年是我在面包板社区活跃的第一年,在面包板社区看到很多大佬,大佬写的文章都非常专业,可以学到很多东西,还有对行业的见解和行业内的一些事情 这些对于我这种在学校还未出社会的愣头青来说,非常的有帮助,所以这一年先感谢各位前辈的奉献 然后还要感谢面包板社区举办了很多活动、原创活动、拆解活动、diy活动,这些活动很大的促进我学习的动力,每次参加活动都花大量的时间去找资料,然后编写文章, 不说专业能力的提升,光是写文章的能力就已经进步了非常多。同时,面包板社区活动的奖励也非常丰富,这也成为我为数不多的经济来源 还参加了嘉立创的星火计划、训练营、征集令 嘉立创提高了免费的打样,而且嘉立创的活动,连元器件也报销,极大减少了做项目的经费,嘉立创在一年内提高的帮助也是非常大的 而且通过参加嘉立创的活动,可以提高画PCB和焊接的能力 帮助他人:授人以渔 自己学了点皮毛,就喜欢帮助同学,一些师弟和我一样对电子方面挺感兴趣,然后就一起学习、交流,我当然很乐意去帮他们, 感觉和我几年前一样,到处问别人,别人也乐意解答我的各种问题 同时,为了更好去帮去他人、也为了自己复习巩固知识,我在面包板社区申请开了一个论坛专区,里面有我学习过的一些教程、遇到问题的解决过程、项目开发经验, 授人以鱼,不如授人以渔,这句话也在这一年内激励着我,帮助他人同时也在帮助自己 在哔哩哔哩也有我上传的一些项目资料、项目经验(虽然平时懒得更新)也累计了几万播放,帮助到很多小伙伴 学业方面:重要的事 网上流传着一个笑话: "好的大专不比本科差!" "那你平时在干嘛?" "专升本..." 这个段子说的还真的没问题,大专学专业的人不是最多的,而疯狂准备专升本的人一大堆 我感觉大专分了几类人,要么疯狂专升本,要么疯狂比赛,要么疯狂专升本+比赛 这一年成功吃下一本高等数学、一本模电、一本数电 "平时写代码写累了,就去刷高数" 这句话还真不是开玩笑的,可能大家不信大专怎么会有人学习 但是确实是有人在卷专升本,而且不只是我们学校在卷,而是广东省大专都在卷 总结 今年总体来说,进步了挺多的,认识了很多小伙伴,还有一些大佬,同时也积极参加了很多活动,提升了自己的专业能力 同时重要的事情,专升本也没有落下,得益于专业知识的扎实,理论和实践相辅相成 虽然学的又多又杂又乱,但是乱中有序,从arduino进阶到keil5还是迈出了一大步 希望25年可以参加更多的项目、研究出更多好玩的、对别人有帮助的项目 同时也希望认识更多的朋友,一起学习,一起成长 逐渐从小白成长为老白...... 一年中最大的感悟(必看) 我将给大家分享一下我这一年最大的感悟《为什么一定要考个本科》 由于篇幅有限,我下一章为大家分享 https://mbb.eet-china.com/blog/4067534-463118.html
相关资源