- 博客(75)
- 资源 (2)
- 收藏
- 关注
原创 FLASH存储浮点数据的解决办法
需求: 参数的数据类型为浮点数据,需要存储至FLASH中。解决办法:采用联合体联合体特性:联合体内的参数,共用一块内存。案例://构建联合体数据结构typedef union{ float fp;//浮点 unsigned char ch[4];//单字节数组,组成4字节}fp_un;/****应变系数设置*/void strain_factor_set(float in_value){ unsigned int tmp_dat=0; fp..
2021-09-08 15:27:57
1312
7
原创 关于AD7193的SPI总线协议时序操作一感
最近在项目中有用到AD7193这款24bit的ADC芯片,在最对其驱动操作的过程中,花费了不少的时间,主要是对总线的时序了解不深,基础不牢所致,经此对其了解愈加了然,故记录所感。首先AD7193用的是SPI的MODE3模式!!,而不是通行的MODE0模式!!!。且看下面数据手册给出的时序图:了解到: SCK空闲状态时高电平, MOSI在第二个边沿(上升沿)移出数据。-------------------------------------------------CPOL=0表示,S...
2021-08-26 17:21:02
1905
3
原创 AD实用操作(三)- 原理图器件配置参数批量修改
----今天介绍一下,AD软件原理图中去批量元器件参数的配置信息,如显示字体,电气参数,封装等,此也是在设计中较常用的操作,其步骤不是很复杂,见如下。–以将电容封装全部修改为0603封装操作为例。(1)保证当前是在英文输入法下(ps:毕竟是国外的软件,一般快捷键都需要切换为英文状态才可支持)(2)Shift + F 按键此两按键(先按Shift,再按下F键)进入选择状态,此时会出现十字光标。(3)接着点击选中电容器件(你想改的全部电容中的任意一个即可)出现此菜单直接点击确定即可。(4)修改
2021-08-13 16:03:46
26099
4
原创 STM32L432的内部MSI晶振使用
----记录一下STM32L432芯片的功能开发使用。-由于板载尺寸的尺寸限制,硬件未配置外置晶振,故而只能使用内部晶振作为系统时钟源。配置流程如下:/** * @brief System Clock Configuration * @retval None */void SystemClock_Config(void){ RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitSt
2021-08-13 15:39:50
3452
2
原创 断码屏显示驱动开发
驱动示例:如下图纸可以看到上面屏幕给出的参数是:驱动工作电压:3.0V驱动模式:1/4DUTY,1/3BIAS显示方向:12点钟方向第一张图纸知道,4个COM和9个SEG引脚选用专用的LCD液晶驱动芯片,针对此驱动的引脚数,最终选择TM1620,支持4x10和6x8两种模式。对于此LCD屏幕,我们可以选择前者驱动方式,根据数据手册,在程序之中做下寄存器/命令配置即可。显示区域的每个点段,(即相当于驱动数码管的每个段),在表中给出了位置。我们可以将显示内容从左至右依次按照SEG1~SE
2021-08-03 17:45:43
7543
3
原创 STM32F030的低功耗案例(RTC闹钟中断定时唤醒喂狗+按键外部中断唤醒)
最近使用到低功耗方案,采用的是STM32F030C8T6芯片,由于任务开启了看门狗,进入休眠后(采用的是STOP模式),需要及时喂狗,故而使用RTC闹钟中断定时唤醒来喂狗。对比三种休眠模式:就设备的使用情况和功能需求,采用STOP模式/* 三种休眠模式说明-各有不同1.Sleep mode In Sleep mode, only the CPU is stopped. All peripherals continue to operate and can wake up the CPU when
2021-08-03 16:54:11
9528
3
原创 单片机矩阵按键驱动实现
最近在做项目中,有开始用到矩阵按键,由于之前做的项目基本是独立IO按键,所以这块算是没接触过。经过从网上了解到的情况,大已明白其原理:列扫行读(基于下面的硬件方式)。 不过网上提供的案例代码有些过于冗余,遂自己尝试写了一下,已验证OK。先附上硬件设计原理图: 如下是3x4的矩阵键盘再附上核心的三个函数/*按键信号读取,判断是否按下被拉低*/unsigned char key_read(unsigned char row_pos,unsigned char col_pos,unsigned..
2021-04-07 21:42:51
477
1
原创 AD实用操作(二)- 导入CAD文件设置PCB板框
这次写一下工作中常用的使用结构提供的CAD文件,导入AD中生成PCB板框外形。1.准备好DXF/DWG文件,某些在后面操作不能正常导入的情况,可以试下如下情况:1.1修改DXF/DWG文件版本,由于AD版本的不同,有些低版本AD可能不支持高版本的DXF/DWG文件。可以尽量的生成低版本的DXF/DWG文件,(如较常见的是生成2007版本的)1.2尝试修改下DXF/DWG的文件名为非中文命名。2.开始导入操作。1.先建立一个PCB文件文件(F) -> import -> DXF.
2021-03-10 13:01:48
34254
4
原创 关于I2C的一点技术文摘
I2C协议及配置硬件参数演算:DESIGNING-WITH-I2C-BUS-DEVICESGPIO模拟I2C案例:AN12841
2020-10-15 17:32:01
202
原创 嵌入式编程中总线驱动的抽象提取
何为总线?百度百科给出的定义为:总线(Bus)是指计算机组件间规范化的交换数据(data)的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。在嵌入式编程中,IIC总线和SPI总线驱动是用的比较多的,在裸机编程中,如果有多个SPI/IIC设备,我们可能每个设备的驱动都要写一遍,这样增加了代码的冗余度,亦不便于管理。所以我们可以将这个驱动协议抽象提取,以指针化的方式编写写处协议驱动,然后每个设备只要初始化几个硬件接口函数(因为最终还是要驱动GPIO的),然后注册(传入相应的设备指针)对应的设备即
2020-09-04 12:25:34
423
原创 MQTT.fx客户端使用方法
MQTT.fx是调试MQTT协议一个必备的工具软件,这里归纳粗略介绍下客户端使用方法。1)下载安装。下载安装 这个网上搜一下,就应该能找到不少。这里提供一下网盘下载链接链接:https://pan.baidu.com/s/1eNABA8QYFYAYOm7phtfmbw 提取码:h9fp2)配置MQTT客户端参数打开MQTT.fx;点击设置图标在Profile Name 栏可随便填入一个名称,代表你当前使用客户端的名称。在Profile Typer 栏选择MQTT Broker即可。
2020-08-11 15:47:35
19453
5
原创 电流镜电路公式推导
最近复习了硬件笔试题。碰到了这个题,遂写一下自己的推导过程。 电流镜原理图(假设三个管子的是参数理想一致的情况)–>>> Ie1 = Ib2 + Ib3 【 KCL公式】–>>> Ie1 = Ib1 * (1+β) 【 放大关系】–>>> Ib1 = Ir - Ic2 【 KCL公式】–>>> Ic2 = Ib2 * β 【 放大关系】–>>>
2020-08-10 09:06:21
3928
转载 冒泡/选择排序基础
一、冒泡排序算法思想:假设是从小到大排序1.用当前位置的数与毗邻的数相比 。2.若当前位置的数大于毗邻的数,则交换数值位置。3.然后再用交换位置的那个大值数继续重复上面(2)的思路,4.再重复(3)的思路。如此轮转之,直至排序完成。void bubble_sort(int *arr,int len)//排序对象|对象数据个数{ int temp; for(int i=0;i<len-1;i++)//轮转次数 { for(int j=0;j<le
2020-08-07 09:14:53
190
原创 中移M5311型号NBIoT模组MQTT开发记
由于公司项目需求,需要NBIoT模组,采用MQTT协议连接自有服务器,之前挑选的是使用安信可的N92模块,但因为开发到最后发现有负载字节长度限制,不满足我们现有数据的长度,所以又重新选了这个模组来开发。因为模组支持MQTT协议,所以直接采用AT指令进行数据命令交互通信,这种方式也是最简单,开发最快的。如下截图,乃是其AT指令手册的MQTT有关的AT指令篇。在开发使用了多款不同的通信模块之后,也知道其无非分为这几个步骤:1.等待模块初始化;2.注册激活网络3.MQTT连接参数配置4.MQTT登
2020-07-28 17:41:53
4926
2
原创 Keil生成bin文件的方法
在keil中生成bin文件的方法如下:在上面栏中勾选并添加该语句:fromelf.exe --bin -o “$L@L.bin” “#L” 即可。
2020-06-03 11:34:57
532
原创 STM32模拟串口驱动(带校验位)
年前一个项目中,由于串口的资源紧张,硬件使用的是主MCU-STM32F030C8T6,其两个硬件串口都被使用了,而另外一个器件间的通信也需要串口通信,故不得不采用模拟串口的方式,该器件的通信要求是:4800bps /8/N/EVEN。对,是采用偶校验的方式。之前一直习惯无校验方式,一下子说要采用偶校验,所以不得不再深度查阅和了解串口的相关信息。以下即是所了解的 校验位信息的解读说明://...
2020-04-13 19:51:56
4278
2
原创 AM2302温湿度传感器驱动调试笔记
手头有一块AM2302温湿度模块,之前没有用过,最近闲暇,就尝试写一下驱动,虽然协议很简单,但也零零散散花了3天时间,主要是一方面发现原先用的延时器不准,导致一直调试不成功,所以遇到调试不上,先尽量检查一下延时函数的精确度,不宜偏差过大。现贴参考代码如下:#ifndef _AM2302_H__#define _AM2302_H__#include "bsp.h"#define A...
2019-12-21 17:02:50
1990
原创 阻塞任务环境运行框架的构建
前段时间,接手一个项目,刚开始看了下代码框架,一点时间片的思想都没有,有点类似于操作系统样的,一个事件一个while,这样导致看到代码里面的喂狗处很频繁,而且代码重复率很高,整个代码的耦合度非常之高,改动一处,可能就会影响另一个地方。由于它始终不是一个操作系统调度,而是靠由一堆事件标志来进行切换,最终还是前后台轮询框架,由于接手时,需要增加WIFI功能框架,最开始我想使用时间片调度框架嵌入到里面,...
2019-12-11 11:05:11
253
原创 单片机按键驱动实现
这份是我在实际工作中摸索并逐步形成的一个比较好与可扩展性比较稳定的按键驱动框架,自己已经在51和ARM中都运行过,无论是普通实体按键还是触摸按键皆可采用,主要实现了长按和短按功能,按键是嵌入式中一个不可忽视和必须掌握的功能,故分享之。//1.实体按键,以STM32F0(Cotex_M0)芯片为例//api function:void Button_getValue(keyEvent_s...
2019-11-01 11:16:14
896
2
原创 RT_Thread+FreeModbus使用笔记
废话一段先:最近接手一个带rt_thread程序的项目,里面的Modbus485使用的是FreeModbus,忏愧,由于之前还未接触过RTOS,还好,前人栽树,后人乘凉,由于原来的程序逻辑已经写得比较完善,所以我也没有太投入太多去修改,现在项目接手一段时间后,也对让这个RTOS有了进一步的了解,闲暇之时,也专门研习了一下,虽说原来代码逻辑良好,但是大量的独立变量,看的人眼花缭绕,阅读是在不是很好......
2019-07-11 12:26:35
8674
原创 呼吸灯的实现
最近做的项目中,有要求要实现LED灯光强弱变化控制的,之前有了解过呼吸灯的概念,也知道通过PWM来控制,但也只是停留在概念上面,以前也没有真正去做过这方面的,所以就在网上再搜罗了一番,感觉还是有些云里雾里的,最后只好自己静下心来,从原理上弄懂先。了解到要想改变LED亮度改变LED的电流,就需要,一则改变限流电阻,二则改变供电电压值。前者一般电阻都是选定,无法再做实时更改,就算可以实时(如数字电...
2019-04-02 17:36:54
14212
1
原创 PIR热释电传感器使用笔记
最近接手一个简小的项目,需要用到PIR传感器,由于不能使用网上那种成品的PIR模块,所以需要自己重新规划设计电路,最后经过筛选型号,选用国产的6脚AS612,不过商家最后给我寄的是BS612。在其产品官网上搜索其资料,也是仅有的一张简单的多型号复合参考应用,图中标注的原理图引用引脚也是错的(因我按此接线,直接发烫。),真是对其无语。。。好在网上搜索有AS612产品的数据手册,我也只能参照它。网上...
2019-02-16 13:46:16
13202
2
原创 AD实用操作(一)- 隐藏和显示全部元器件名称(位号)和参数
现总结在实际工作项目中,使用AD软件一些简单但使用率高的操作。----------隐藏和显示全部元器件名称和参数(1)调整输入法在英文状态下(2)按下shift + F 键,鼠标变成十字光标态(3)点击(左击)元器件本体(非焊盘,否则进入了焊盘操作,暂不讨论),进入了菜单界面(4)点击 “确定”,进入全局修改菜单界面(5)上图可看到,有相关对象参数“show name”(显示/...
2019-01-17 15:41:58
118573
4
原创 单片机ADC温度采集原理
以上拉电阻形式为例:据分压公式有:若 ADC 采集精度为 Nbit;则 VCC 即对应的满量程 ADC 值为 2^N=C(常数);若 VADC 端口当前读取的 ADC 值为 X;则有:由于 X 为已知量;ADC 采样精度亦被确定,RU 为已知量所以有:查找 NTC 数据手册的阻温(R-T)映射表,或者先期按上面公式转化为ADC-T映射表,可得出 NTC 当前测得环境温度。...
2018-12-10 18:28:42
11936
原创 根据公历年月日求星期函数
在嵌入式开发中,特别是RTC驱动中,在一些地方有时需要人工算取星期值。现基于基姆拉尔森公式所编写的一个通用函数,现贴源码如下:/*函数中部分变量可依据实际应用作相应变更*/unsigned char Calc_Week(unsigned int yeartxt,unsigned char monthtxt,unsigned char daytxt){unsigned int week...
2018-12-07 14:14:28
712
原创 单片机非ADC方式实现温度测量
最近在一个新的开发项目中,因一个需要一个简小的外联功能模块,考虑到体积尺寸和单一的功能需求,故而思琢采用性价比较高的STC51单片机。项目需求中需要用到温度测量,但是后来发现,自身未带AD口,无奈,遂想到之前在图书馆借阅的老外著作的《模拟电路》中有讲解到使用GPIO+TIMER+RC实现温度测量的原理步骤,当时觉得就蛮新奇的,在此之前也听闻过网友使用此法实现了温度测量,效果说也不错,于是就决定尝试...
2018-12-04 09:27:58
3173
9
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅