前言:本文为手把手教学ESP8266著名开源项目——太空人WiFi天气时钟,不同的是本次项目采用的是STM32作为MCU。两者开发过程中有因为各自芯片的特点(时钟频率,内存大小等),导致开发程序大不相同,很多地方需要特殊设计一下。而作者使用STM32开发的原因很简单,ESP8266虽然计算能力等方面优于STM32F1xx,但是弊端也很明显。其所具备的引脚和外设太少,扩展性一般(ESP32算是二者优点兼备)。加之网上ESP8266的太空人WiFi天气时钟已经开源的很完善了,所以尝试用STM32实现一下,也方便后续利用STM32拓展开发。(文末有代码开源!) 实验硬件
目录一、芯片介绍二、芯片引脚定义三、寄存器定义四、命令字五、时序图与数据读写5.1单字节写步骤(Write)5.2单字节读步骤(Read)六、BCD码6.1问题描述6.2问题原因6.3解决方案一、芯片介绍DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。RTC(RealTimeClock):实时时钟,是一种集成电路,通常称为时钟芯片。二、芯片引脚定义DS1302电路图如下:其内部结构框图如下:引脚名作用VCC2主电源VCC1备用电池GND电源接地X1,X232.768kHz晶振CE芯片使能I
目录一、芯片介绍二、芯片引脚定义三、寄存器定义四、命令字五、时序图与数据读写5.1单字节写步骤(Write)5.2单字节读步骤(Read)六、BCD码6.1问题描述6.2问题原因6.3解决方案一、芯片介绍DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。RTC(RealTimeClock):实时时钟,是一种集成电路,通常称为时钟芯片。二、芯片引脚定义DS1302电路图如下:其内部结构框图如下:引脚名作用VCC2主电源VCC1备用电池GND电源接地X1,X232.768kHz晶振CE芯片使能I
文章目录前言一、LCD显示控制1.LCD显示一个字符2.LCD显示多个字符二、数字时钟输出1.数字时钟2.十进制数据拆分BCD码三、按键检测及LCD驱动1.按键检测2.LCD驱动四、总结前言软件实现了在4.3寸LCD左上角显示一个数字时钟,效果如下图所示。本文针对VGA/LCD控制时许有一定基础的人群,博主的开发环境为Quartus13.1和一个随便哪家的开发板,使用4.3寸LCD(RGB565接口),兼容VGA,但是相关参数需要更改。软件中部分代码模块借用野火电子的软件,感谢。后文以LCD进行说明。获取源代码、字模软件、rom初始化文件等点击此处一、LCD显示控制1.LCD显示一个字符LCD
文章目录前言一、LCD显示控制1.LCD显示一个字符2.LCD显示多个字符二、数字时钟输出1.数字时钟2.十进制数据拆分BCD码三、按键检测及LCD驱动1.按键检测2.LCD驱动四、总结前言软件实现了在4.3寸LCD左上角显示一个数字时钟,效果如下图所示。本文针对VGA/LCD控制时许有一定基础的人群,博主的开发环境为Quartus13.1和一个随便哪家的开发板,使用4.3寸LCD(RGB565接口),兼容VGA,但是相关参数需要更改。软件中部分代码模块借用野火电子的软件,感谢。后文以LCD进行说明。获取源代码、字模软件、rom初始化文件等点击此处一、LCD显示控制1.LCD显示一个字符LCD
导读:随着5G网络的普及以及疫情带来的影响,人们对实时音视频技术的应用场景会越来越多,包括会议、连麦、音视频通话、在线教育、远程医疗等,这些实时互动场景对RTC音频的质量提出了越来越高的要求。如何对RTC音频的效果开展测试,通过构建客观、标准、可重复的评价体系来保证好的音频传输质量,也成为目前比较紧急和重要的课题。文|马建立 网易云信资深音视频测试工程师 理想的沟通模型日常沟通中面对面的交流一般有比较好的效果,如果在一个安静的实验室内,减少环境的干扰和影响,会得到理想的沟通效果。我们再把这个模型抽象一下,大体可以看出有以下的特点:环境安静:NR15的底噪,相当于在极其安静的夜晚,人耳能不受到其
导读:随着5G网络的普及以及疫情带来的影响,人们对实时音视频技术的应用场景会越来越多,包括会议、连麦、音视频通话、在线教育、远程医疗等,这些实时互动场景对RTC音频的质量提出了越来越高的要求。如何对RTC音频的效果开展测试,通过构建客观、标准、可重复的评价体系来保证好的音频传输质量,也成为目前比较紧急和重要的课题。文|马建立 网易云信资深音视频测试工程师 理想的沟通模型日常沟通中面对面的交流一般有比较好的效果,如果在一个安静的实验室内,减少环境的干扰和影响,会得到理想的沟通效果。我们再把这个模型抽象一下,大体可以看出有以下的特点:环境安静:NR15的底噪,相当于在极其安静的夜晚,人耳能不受到其
很多没有系统学习FPGA开发的小伙伴可能在初学时不太在意时序约束,简单的项目工程可能不会有很大的影响,代码无误配脚正确基本上能成功运行。涉及到有多个时钟时如果不注意很容易弄混淆,加之没有进行时序约束,难以对错误位置进行定位。由于博主也是野路子入门,有些地方理解可能有误,仅将自己的心得体会分享,希望能对初学者有所帮助。如有错误欢迎大佬指正。下面进入正题方法1:使用时钟约束向导在我们综合完成后,如果没有进行时序约束会看到如下警告打开TimeQuesttiminganalyzer,单击Clocks可以看到时钟默认1000mhz,这显然是违例的。 选择要约束的时钟信号(我这里只有一个全局时钟),右键选
很多没有系统学习FPGA开发的小伙伴可能在初学时不太在意时序约束,简单的项目工程可能不会有很大的影响,代码无误配脚正确基本上能成功运行。涉及到有多个时钟时如果不注意很容易弄混淆,加之没有进行时序约束,难以对错误位置进行定位。由于博主也是野路子入门,有些地方理解可能有误,仅将自己的心得体会分享,希望能对初学者有所帮助。如有错误欢迎大佬指正。下面进入正题方法1:使用时钟约束向导在我们综合完成后,如果没有进行时序约束会看到如下警告打开TimeQuesttiminganalyzer,单击Clocks可以看到时钟默认1000mhz,这显然是违例的。 选择要约束的时钟信号(我这里只有一个全局时钟),右键选
本篇文章仅用于个人学习,如有雷同,我抄他的。跨时钟域是每个FPGA初学者都会遇到的问题,跨时钟域分情况有以下几种:单bit跨时钟域慢时钟域到快时钟域快时钟域到慢时钟域多bit跨时钟域 单bit跨时钟域慢时钟域到快时钟域 首先谈谈单bit数据的跨时钟域问题,当从慢时钟域到快时钟域时,常用方法为打两拍。首先快时钟域是肯定可以采集到慢时钟域的数据的,所以需要解决的就是亚稳态的问题。打两拍的基本原理就是,数据(处于10Mhz时钟下)在跳变过程中不是瞬时的,总有一个跳变时间。如果在clk(处于125Mhz下)的上升沿采集到了数据的跳变过程时,此时的数据是不确定的,可能是1,可能是0