自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 单片机裸机程序——NTC检测

不是的,今天调试给电池充电发现,本来只有百分之50的电池电压,一插充电器,电池电压瞬间变到百分之75,一拔充电器,电压一下子降低不少,看到电量指示灯就是插电变绿灯,拔电变红灯。真正原因是给电池充电时,充电电压必须高于电池实际电压才能充进去,转变电量灯不能以充电电压为依据,而是加入算法,比如充电时需要每隔一段时间才认为电量增加百分之一,放电时同样判断方式,这个时间长度可以根据实际充电电流而定,这样指示灯指示的电量才是最接近电池实际电量。采集精度为0.1V的电压值,参考电压是3.3V,请计算选择的ADC位数?

2024-08-07 23:33:30 904

原创 代码备份——Git版本管理

在写代码的时候,实现了某个功能,增加了某个测试功能,修复了某个bug,都需要备份成一个版本,方便回头分析问题或恢复旧代码,这些基本操作Git可以帮你轻松实现。如果你不是一个程序员,也是可以用Git,因为它能管理任意文件的版本,不过极少人这么多,因为有云端出现。安装后查看一下是否安装成功,在 cmd 命令窗口运行git --version命令。Git的安装是非常简单的,在官网下载安装包(不大,几十个MB),默认安装即可。如果你是一个程序员,那必须要管理代码版本,用Git工具一定是不错的选择。

2024-08-01 00:20:49 405

原创 C语言理解——基本数据类型

数据类型好比一个模具,从内存中卡出一个固定大小的内存块,不同类型卡出来的内存块也不同。再后来发现,需要用多个大小一样的内存块,如果用char1,char2,int1 这样的方式去命名,非常不好记。为了易记,给各种内存块起个有意义的名称,变量就这样诞生了。char a;short b;int age;变量定义其实就是在内存空间中卡出固定大小的内存块。有时候虽然知道基本数据类型在不同系统和编译器下,占用的字节数会有不同,但记不得具体了,怎么办呢?

2024-07-30 23:48:09 1199

原创 单片机裸机程序——调试手法

代码量比较少,不带操作系统的单片机程序就是所说的裸机程序。裸机程序里可以看到直接对处理器(所说的MCU)的寄存器、内存、I/O端口等进行读写操作。

2024-07-28 10:30:02 576

原创 C语言理解——static、extern等

全局变量的作用域十分的广,只要在一个源文件中定义后,这个程序中的所有源文件、对象以及函数都可以调用,生命周期更是贯穿整个程序。声明可以多次,定义只能一次。被static修饰后,函数的外部链接属性被修改成内部链接属性,使得这个函数只能在自己的源文件内被使用,因此函数的作用域就变小了。static修饰后的局部变量则放在静态区中,它改变了局部变量的存储位置,从而使得变量的生命周期延长,延长至程序结束才销毁。const修饰的变量表示不能再改变变量的值,再次赋值也不行,定义的时候就把值确定了,该变量是只读的。

2024-07-28 00:48:13 626

原创 C语言理解——结构体struct

结构体是一种新的类型,属于“私人定制”类型,顾名思义,你想怎么定义就怎么定义。struct 结构体名成员1;成员2;......成员n;提示:成员可以是基本的数据类型,指针,数组或其他结构类型结构体里的成员的类型可以是基本数据类型,指针,数组,其它结构体类型。既然它是类型,就可以定义变量。学生类可以看作是一种结构体类型,学生实体可以看作是该类型的变量,变量本身的特性就是成员。怎么判断该类型是结构体类型?1 、必须有struct这个关键字。2 、有结构体名(可以省略)。

2024-07-27 16:49:27 489

原创 C语言理解——关键字static等

全局变量的作用域十分的广,只要在一个源文件中定义后,这个程序中的所有源文件、对象以及函数都可以调用,生命周期更是贯穿整个程序。声明可以多次,定义只能一次。被static修饰后,函数的外部链接属性被修改成内部链接属性,使得这个函数只能在自己的源文件内被使用,因此函数的作用域就变小了。static修饰后的局部变量则放在静态区中,它改变了局部变量的存储位置,从而使得变量的生命周期延长,延长至程序结束才销毁。const修饰的变量表示不能再改变变量的值,再次赋值也不行,定义的时候就把值确定了,该变量是只读的。

2024-07-23 10:06:45 260

原创 蓝牙耳机充电仓——功能框架

数据传输:大部分充电仓会跟耳机通信,控制耳机开机、关机和进入可搜索模式等等。蓝牙耳机给大家的生活带来便利,来讲讲TWS蓝牙耳机的搭档充电仓吧!方便携带:如果耳机单独带着,指定能弄丢一个,有了充电仓就安全多了。收纳保护:把珍爱的耳机放入充电仓里,防止丢失、磕碰、刮花等。给耳机充电:提供电力补给,让耳机持续使用。

2024-07-15 11:10:40 455

原创 电路设计——实践笔记

想用uln2803驱动共阴大数码管的段,结果是失败的,因为uln2803是OC输出(集电极开路输出,只能输出低电平),输入低电平有效,即输入是内部晶体管的基极,输出是晶体管的集电极,因此只能吸电流,应该驱动共阳数码管。产品的电源设计是最重要的,电压纹波越大,产品运行越不稳定,之前做的arduino时钟,程序没有问题,可是老是死机或掉固件,换了个电源适配器就正常了,找到根本原因是电源纹波太大了,必须加电容滤波。如果使用模式测试没问题,在要把模块电路集成上去的板子上也预留模块的接口,以防集成的电路出问题。

2024-07-15 10:47:34 287

原创 电路设计——别踩PCB设计的坑

输入电压是12V、输入电容焊接了一个22uf/6.3V的,然后输出一直没有电压,原因在于该输入电容导致的,要换高于12V的才行。MCU供电是5V,模块是3.3V,两芯片的串口发送接收引脚之间需要串联1k电阻,否则无法正常,或烧坏低压模块。PCB的地线覆铜面积尽可能大,以利于散热,同时芯片底部的散热焊盘与地线覆铜须有良好的接触,以保证散热良好。IC电源脚要接滤波电容,电容应该尽可能靠近输入和输出,走线要短,电流走向的电源线尽量粗,不要细。板载天线附近不能有晶振,另一面不能有电路,否则会影响天线信号。

2024-07-15 10:35:52 229

原创 大彩串口屏开发——定制UI

可以使用微软Visio设计UI。

2024-07-14 09:47:13 77

原创 大彩串口屏开发——LUA关键语法

数组的第一个元素默认是没有值的,下标从1开始。运行虚拟屏时有提示error,说明有bug。回调函数必须有end。end和if必须成对。

2024-07-14 09:34:35 211

原创 大彩串口屏开发——如何调试LUA

在LUA脚本中可以使用print或uart_send_bytes进行调试。print和uart_send_bytes都会打印信息到虚拟串口。串口屏LUA程序编译时不会提示错误,只有在运行测试时才提示。软件开发必须掌握调试方法和技巧,才能定位问题,修复bug。uart_send_data只能发送字节数组到屏串口输出。

2024-07-14 09:18:38 287

原创 大彩串口屏开发——U盘和SD识别问题

,串口屏的型号也对应上了,LUA脚本中也启用了自定义协议 uart_free_protocol = 1,发送的命令也是对的,还是没反应,无果。第三步,线上跟大彩科技的技术支持沟通反馈问题,那边发来的资料跟我看的一样,下载测试结果也是没反应,但那边测试结果是正常的。自己再测试:在10.1寸的屏上试一下,还没试过,将工程的设备类型改为DC10600M101,编译下载,测试结果是正常的。自定义协议的目的是针对不支持二次开发的设备,需要屏幕来处理交互报文的情况,支持二次开发的设备就用大彩协议即可。

2024-07-14 09:10:35 409

原创 大彩串口屏开发——备忘录

大彩串口屏的虚拟屏提高了开发效率,大部分显示应用可以不依赖物理实屏就能完成开发。编译过程是不会提示语法错误的,只有在虚拟串口屏运行测试时错误才提示在虚拟串口上。开发软件分为VisualTFT和VisualHMI,都带有虚拟串口屏。调试方式有print和uart_send_bytes。3、Flash存储和RW寄存器。支持串口下载和SD卡方式。4、GPIO和RTC。

2024-07-14 08:58:35 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除