嵌入式软件
文章平均质量分 68
单片机软件配置、编程方式
睡够了就学习
选择大于努力,行动大于遵守
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
8位MCU串口与电池包通讯
便于对底层的理解,我们只介绍8位的MCU自带的串口(UART)。相反,我们并不能确定对方什么时候给我们发送东西,假如我们一直在等,就会阻塞单片机的程序,所以接收我们是用中断接收。单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。串口还是蛮好理解的,用户只需要配置好基础参数,他就可以按照你给的数据进行收发,话不多说,我们直接看实例。以上就是发送以及接收数据的处理了,这样就可以根据接收的报文进行SOC数值的提取了。原创 2024-11-12 17:48:26 · 2461 阅读 · 0 评论 -
单片机——按键检测
我毕竟不是氪金大佬,所以选择软件消抖。这里切记不要用阻塞式Delay,通过标志位的判断以及用计数器来确定是否是干扰还是真正的按下,这种编程思想在单片机尤其是裸机邻域中很重要,在这个基础上我们判断长按,短按,单机,双击就都很简单,只需要多用几个计数器即可。上图是共阳极接法,IO管脚我们可以设置为下拉输入,当按键松开时,IO读取到的为低,按下时,读取为高。在实现人机交互的需求下,最节约成本的方式莫过于外部按键。按键检测常用的方式有外部中断以及轮询,这里我们使用轮询方式。原创 2024-09-24 15:41:27 · 1106 阅读 · 0 评论 -
C8624QP(LED点阵驱动芯片)应用介绍及软件驱动详解
如需输入N组(N<8)显示数据则发送数据依次是数据地址1、显示数据1、数据地址2、显示数据2、........、数据地址N,显示数据N,结束标志FF以及末位校验数据。最后一组校验码由前N组显示数据相加所得(保留低8位),如果校验失败,前面所有的显示数据都无效,SRAM会保持上一次的正确写入的显示数据。配置数据采用自动地址递增的方式读取,依次为配置数据1、2、3、4.最后一组校验码由前4组配置数据相加所得(保留低8位),如果校验失败,前面所写4组配置数据都无效,芯片会保存上一次正常写入的配置数据。原创 2024-10-19 16:13:05 · 4274 阅读 · 1 评论 -
485、CAN通讯、LCD段码屏 电动车仪表测试盒
区别就在于串口是全双工的,可以同时收发,而485是半双工的,同一时间只能收或者发。项目需要实现的功能是:通过诸多外部按键,LCD屏会显示测试内容,例如速度 、档位、故障码,同时通过数据发送端口(485或CAN)发送相应数据到电动车仪表,实现测试功能。485通讯说白了就是串口通信,区别在于串口极其容易受干扰且传输距离近,MCU出来的TX,RX经过485芯片强化升级后变为抗干扰能力强的差分信号。硬件连接,485RX、TX接MCU串口TX、RX 485EN接任意IO口,用来切换485收发模式。原创 2024-09-24 17:50:05 · 1263 阅读 · 0 评论 -
台式振动按摩仪(超声、电机、电刺激、人机交互)
这是本人23年毕业后入职做的第一个商业性项目,代码写的和那个啥一样,硬件部分也并没有考虑成本,介于公司的产权,本人并不能将实际产品发出供大家参考。以它来作为我在优快云的初始篇,后续也会发一些其他的项目以及一些踩过的坑和小技巧,欢迎大家提出宝贵意见,评论区留言我也会答复。E端接IO口输出PWM,占空比越大时,等效输入电压越大,再通过三极管,此时电路形成小电流控大流。当电极短路时,相当副边负载0欧姆,初级线圈自身电感感抗也会变为0,此时所有的能量经续流二极管经限流电阻消耗掉,并不会对人体造成伤害。原创 2024-09-24 11:37:42 · 1173 阅读 · 0 评论 -
单线数据传输
顾名思义,单线传输就是一根线来传输数据,所以肯定在同一时间只能是收或者发,这个处理起来并不困难,双方约定好协议,MCU接收到特定数据后便可做出相应处理,但是问题来了,如何通过1根线来发送不同的数据帧呢。在一些领域上,MCU资源会极其珍贵,像我们平时用的串口、I2C、SPI这些常用的外设会占用至少2个IO口,有需求就会有市场,所以单线传输方式被不少人采用。方法是有了,接下来就得考虑程序了。以上就是控制发送完整一帧数据的函数,接下来是接收函数,接收函数是我老大写的,逻辑相当完美,可以直接使用。原创 2024-09-24 19:08:03 · 699 阅读 · 0 评论 -
LCD段码式液晶屏驱动
使用这样的电路:我们只需要改变IO口的工作模式就可以达到改变COM端电压的大小,浮空输入模式下,IO口电压完全取决于外部电压,我的原理图5V和GND对半分刚好是2.5V,等于我的LCD段码屏base电压,所以我只需要让5个COM循环扫描,仅仅在对应的时间段内拉高或者拉低Seg口即可,COM口扫描波形如下。这个是四扫的示意图,简单说就是在一个时间片内只有一个COM口是工作在有效电压内,其余都不是,四个口来回换着工作,由于它换的太快了,人眼识别不了这么快的亮灭,就觉得它是一直亮的,这和呼吸灯是一个道理。原创 2024-09-24 16:26:41 · 2690 阅读 · 0 评论 -
裸机编程标志位思想
代码的严谨性是需要后期锻炼的,这个没有捷径,只能是依靠平时的工作调试和训练来不断强化,训练自己的逻辑完整性。包括我在内,不少人在初期都会面临一个问题:为什么单独的功能需求我可以实现,但是放在整个业务代码里,就不知道如何去统筹规划各个模块,使他完整不出错的运行起来。当我们学习完单片机的各种外设功能,知道它如何使用的时候,按照Datasheet里的配置步骤配置完成后,就可以按需写我们的裸机代码。这是我们业务代码所在的地方。这样即使是处理复杂的逻辑,也不会乱,只需要在具体的标志位状态里进行业务代码的编写。原创 2024-11-25 18:42:35 · 648 阅读 · 0 评论 -
LED驱动灯珠驱动(ET6934、DP5125D)
接下来看下DP5125D这颗芯片,首先还是先介绍硬件,硬件是软件的基础,一定要确保自己的硬件电路是没有问题的再写软件,不然找问题会把自己找绝望的,哪怕是一颗小小的采样电阻。细心的小伙伴会发现这个芯片没有SEG口,只有GRID口,所以还需要有个推的大电流的SEG口,下面我用一个我做过的老年代步车的项目电路来帮助大家理解。然后我们就可以创建一个20字节长度的数组,管理这些灯珠的亮灭状态了,通常会列一个真值表方便写程序,因为6934是带锁存的,所以你要隔一段时间重新对他来赋值。双8字数码管内部电路图。原创 2024-10-12 14:52:57 · 4900 阅读 · 0 评论
分享