- 博客(45)
- 收藏
- 关注
转载 MODBUS_RTU通信协议
通讯数据的类型及格式:信息传输为异步方式,并以字节为单位。在主站和从站之间传递的通讯信息是11位的字格式:通讯数据(信息帧)格式数据格式:地址码 功能码1字节 数据区1字节 功能码N字节 错误校检 16位CRC码(冗余循环码)一、通讯信息传输过程:当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。返回的信息中包括地址码、功
2020-12-17 18:07:43
1015
转载 蓝桥杯:模拟智能门锁
timer.c#include <timer.h>void Timer0Init(void) //1毫秒@11.0592MHz{ AUXR |= 0x80; //定时器时钟1T模式 TMOD &= 0xF0; //设置定时器模式 TL0 = 0xCD; //设置定时初值 TH0 = 0xD4; //设置定时初值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 EA=ET0=1;}timer.h#ifndef...
2020-08-29 16:06:31
800
原创 TCP/IP协议
TCP/IP 基础TCP/IP 的具体含义从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。互联
2020-08-03 20:49:10
148
原创 数据结构
线性表的链式存储结构单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映像)+指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。1.链接存储方法链接方式存储的线性表简称为链表(Linked List)链表的具体存储表示为:1.用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)2.链表中结点的逻辑次序和物理次序不一定相同。为了能正确
2020-08-03 16:30:41
284
转载 霍尔传感器的工作原理
霍尔效应产生的电势差非常小,往往只有几微伏,因此霍尔传感器中往往内置了非常高增益的运算放大器,根据整体需求还会配合其他一些系统电路,整体架构如下所示;通常霍尔传感器最终输出的信号有模拟信号和数字信号两种;输出数字信号:一般在运算放大器后级增加一个施密特触发器,则输出信号为数字信号,通常为系统提供相应的迟滞和开关阈量,类似的如开关型霍尔元器件;输出模拟信号:线性霍尔传感器的输出量是模拟信号,配合ADC进行采样,可以用于检测物体的位移;...
2020-07-18 16:47:39
15837
1
转载 红外遥控实现回充原理&红外发射与调制信号
遥控红外通信原理在实际的通信领域,发出来的信号一般有较宽的频谱,而且都是在比较低的频率段分布大量的能量,所以称之为基带信号,这种信号是不适合直接在信道中传输的。为便于传输、提高抗干扰能力和有效的利用带宽,通常需要将信号调制到适合信道和噪声特性的频率范围内进行传输,这就叫做信号调制。在通信系统的接收端要对接收到的信号进行解调,恢复出原来的基带信号。我们平时用到的红外遥控器里的红外通信,通常是使用38K左右的载波进行调制的调制:就是用待传送信号去控制某个高频信号的幅度、相位、频率等参量变化的过程,即用一个
2020-07-18 11:28:37
5480
转载 C基本
Linux 有哪些系统日志文件?比较重要的是 /var/log/messages 日志文件。什么是交换空间?交换空间是Linux使用的一定空间,用于临时保存一些并发运行的程序。当RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。什么是root帐户root帐户就像一个系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装Linux时都是默认帐户。什么是LILO?LILO是Linux的引导加载程序。它主要用于将Linux操作系统加载到
2020-07-13 22:32:19
149
原创 安装arm-linux-gnueabihf-gcc -v后出现问题
arm-linux-gnueabihf-gcc -v程序“arm-linux-gnueabihf-gcc”尚未安装。 您可以使用以下命令安装:sudo apt install gcc-arm-linux-gnueabihf解决方法:执行sudo apt-get install lsb-core再执行sudo apt install gcc-arm-linux-gnueabihf...
2020-07-03 22:57:14
1410
原创 Mbus总线毛刺导致异常现象的分析和解决
1、用分离元件搭建电源电路,替换NCN5150或TSS721集成芯片;2、传感器用180度晶元分布替换360度晶元分布,传感器上无轮盘;单片机的3.3v电源设计方案如下测试问题:测试过程中有超时、传感器出错等异常,而且比率比较高。问题解决过程:问题很容易复现,只要mbus总线出现类似如下的上电波形,上电的过程中有一个小于100ms的电源掉电,一定会出现单片机异常。问题的原因是LDO的输出端连接了一个0.1uf的电容,由于这种异常的上电波形导致电容上的电没有充分消耗,导致后端的单片机处于2种
2020-07-01 18:06:24
724
原创 DC-DC转换
今天一个同事问我关于阀门驱动电流的问题,有一个阀门在5v的时候消耗400ma的电流,问对我们的集操设备是否有影响;因为我们的集操设备有500ma的保护电流,就是说大于500ma就进行断电保护,就不再给mbus接口供电。我们mbus接口电压是39v,我在想如果阀门要400ma的电流那不是对总线很危险,因为阀门是从总线取电流的。后来经过讨论实际上从总线上并不会提取400ma这么大的电流的,应该阀门的电压是经过dc-dc变换的,理想状况下计算公式为5v400ma=39vX =>X=50ma,也就是说经过dc
2020-07-01 12:22:18
1020
原创 主机连接wifi,如何设置虚拟机上网方式
电脑连WIFI,虚拟机上网不了,巨坑打开网络共享中心,点击WLAN,然后点击属性,然后两个勾都得选,这样就可以联网了,虚拟机网络自己再配置下。就可以上网了
2020-06-22 22:56:44
1836
5
原创 任务堆栈的创建
SysTick->CTRL . 控制及状态寄存器SysTick->LOAD 重装载值寄存器SysTick->VAL 当前数值寄存器SysTick->CALIB 校准数值寄存器任务堆栈创建很简单:#define START_STK_SIZE 512//堆栈大小CUP_STK START_TASK_STK[START_STK_SIZE];//定义一个数组来作为堆栈任务堆栈的大小是多少呢
2020-06-21 20:04:56
499
转载 实现智能家居控制系统
本文将讲述如何用STM32嵌入式实现智能家居控制系统,所谓智能就是实时监测自主控制一些因素,如,温度、湿度、光照强度等,当室内光线较暗时自动打开灯,根据光线亮度的不同开灯数量也不同,当室内温度过高时红灯不停的闪烁,蜂鸣器也报警提醒主人室内温度过高要打开空调,当室内湿度过高时风扇开始工作,让室内湿度降下来,那么如何实现这些功能呢?下面我们开始介绍!注意:STM32嵌入式实现智能家居控制系统的完整工程(包含keil代码工程和proteus仿真工程)已经放在文章末尾,需要的可点击链接下载。一、本文用到的器件有
2020-06-16 22:59:15
4706
4
原创 手动移植ucossii
1,在基础工程中建立相应的文件夹:CONGIF,core和port2.向CORE文件夹添加文件(将源码添加到core文件夹中)3.向config文件夹添加文件4.向port文件夹添加文件5.将ucosii源码添加到工程上去去掉只读文件答:可以在文件属性的只读更改掉就行了13分48秒待续...
2020-06-14 22:08:17
215
原创 ADC数据的显示方法
加上下列编码便可完成支持汉字的特性,可以支持GB2312汉字 public partial class Form1 : Form { public Form1() { InitializeComponent(); serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);//串.
2020-05-31 00:08:20
2375
转载 进中断后,首先清理中断标志
例1:后清理,卡死测试环境:F429IG + TIM6的中断void TIM6_DAC_IRQHandler(){ LED_BLUE_TOGGLE ; // 反转LED TIM6->SR &= ~(0x01); // 清理中断标志 }上面的两行示例代码,死活没法子看出有啥毛病,但程序卡死。几乎耗了一个上午排查周边代码。修改成如下顺序,先清理中断标志,马上顺利通过。void TIM6_DAC_IRQHandler(){ TIM6
2020-05-28 23:52:57
2442
原创 加入指示灯数据反馈
namespace Reply{ public partial class Form1 : Form { byte DataSended = 0; byte[] DataToSend = new byte[] { 0x01, 0x02, 0x03 }; //数据发送 public Form1() { Initi.
2020-05-28 23:44:31
365
转载 经典题C
预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)懂得预处理器将为你计算常数表达式的值,因此直接写出你如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L
2020-05-26 23:31:13
268
原创 开发常用工具软件
开发常用工具软件项目进度管理:Microsoft project软件版本控制软件:Git、SVN、CVSbug管理软件:bugzilla文件管理:有道云笔记、evernote、Wiki Server、Google DOCs项目文件管理系统:trac Project代码静态测试:PC-Lint、LogiScope嵌入式集成开发环境(IDE):keil、IAR、VS、eclipse代码阅读:source insight代码编辑:sublime TXT、notepa++linux开发:xshe
2020-05-26 23:25:33
145
原创 C#做个PC串口发送数据
C#做个PC串口发送数据 try//防止出错 { serialPort1.Open();//打开串口 serialPort1.Write(buffer, 0, 1);//发送串口 serialPort1.Close();//关闭串口 } catch {//如果出错就执行此块代码 if (serialPort1
2020-05-24 14:30:40
944
1
原创 追
追这一生也在进取, 这分钟却挂念谁我会说是唯独你不可失去, 好风光似幻似虚谁明人生乐趣, 我会说为情为爱仍然是对谁比你重要, 成功了败了也完全无重要谁比你重要, 狂风与暴雨都因你燃烧一追再追, 只想追赶生命里一分一秒原来多么可笑, 你是真正目标一追再追, 追踪一些生活最基本需要原来早不缺少, HA有了你即使平凡却最重要, 好光阴纵没太多一分钟那又如何, 会与你共同渡过都不枉过疯恋多错误更多, 如能从新做过我会说愿能为你提前做错, 谁比你重要成功了败了也完全无重要, 谁比你重要.
2020-05-24 13:23:40
152
原创 你好,放大器
1.1. 放大器定义电学中能够实现信号、功率放大的器件,称为放大器全部放大器被分为三种:晶体管放大器、运算放大器和功能放大器运算放大器1) 运放的开环增益非常大,即图 1-2 中????uo很大。2) 运放的输入端没有电流,即运放具有极高的输入阻抗。???????? = ????uo × (???????? − ????????)???????? = ???????? ×????2 /(????2 + ????????)两个独立的方程,三个未知量,可以解得任意两个未知量之间的关系,得到?
2020-05-22 21:48:08
1359
原创 硬件测试之电路分析篇
整机电路分析————硬件测试如图为自动选台立体声调收音机,电路中共三块集成电路:IC1为FM专用选台集成电路TDA7088,IC2为立体声解码集成电路整机电路分为以下部分,由IC1等组成的调频接收放大电路,由IC2等组成的立体声解码电路,由IC3组成的音频功率放大电路,直流源为3V电源。SB1选台复位,SB2选台搜索按键,双连电位器为RP2为音量电位器...
2020-05-16 07:51:51
1229
原创 SRAM
sramIS62WV51216fsmc_sarm_init函数 2.fsmc_sarm_writeBu’f’fe’r函数 3.fsmc_sram_readbuffer函数初始化外部sramvoid FSMC_SRAM_Init(void){ FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef readWriteTiming; GPIO_InitTypeDef GPIO_
2020-05-11 23:04:35
183
原创 电子秤设计
电子秤设计设计方案多功能电子秤的整体设计框图其中主控芯片采用STM32F103RBT6作为主控芯片,通过TFT液晶显示数据,以触控的方式操作电子秤,DS18B20作为温度传感器采集实时温度,播放重量,价格,商品名等信息,使用Flash芯片W25Q32存储配合语音芯片WT588D发音,采用电阻应变片式称重传感器,以HX711作为AD转换芯片。采用cortex-m3的stm32f103rbt6工作频率作为72Mhz,16位并行连接TFT液晶屏,能实现快速刷屏,显示效果良好,通过SPI总线连接触控芯片XP
2020-05-10 23:43:17
2774
1
原创 ATK-OV7670 5月10号星期日
ATK-OV7670模块图像采集过程1.等待OV7670帧同步信号(vsync)2.fiofo写指针复位(fifo_wrst=0)3.fifo写使能(fifo_wfn=1)4.等待第二个帧同步信号(vsync)5.fifo写禁止(fifo_wen=0)ATK-ov7670模块图像采集过程1.等待ov7670帧同步信号(vsync)2.fifo写指针复位(fifo_wrst=0)3.fifo写使能(fifo_wen=1)4.等待第二个帧同步信号(vsy’n’c)5.fifo写禁止(fif
2020-05-10 17:08:53
293
原创 2020/5/7生活不仅有眼前的苟且还有远方的苟且(C/C++语言的奇思妙想)
函数调用的过程?int main(void){ ... d = fun(a, b, c); cout<<d<<endl; ... return 0;}main()========1).参数拷贝(压栈),注意顺序是从右到左,即c-b-a;2).保存d = fun(a, b, c)的下一条指令,即cout<<d<<end...
2020-05-07 23:26:47
119
原创 FLASH编程过程
1.检查FLASH_CR的LOCK是否解锁,如果没有则先解锁。2.检查FLASH_SR寄存器的BSY位,以确认没有其他正在进行的编程操作3.设置FLASH_CR寄存器的PG位为“1”在指定的地址写入编程的半字。4.等待BSY位变为05.读出写入的地址并验证数据。...
2020-05-07 21:37:31
3016
原创 C#做一个串口调试助手
C#做一个串口调试助手新建工程选择visual c#---->窗体应用程序布局串口配置页面GroupBox拖拽上去6个Label,位置和显示如下拖拽上去5个ComboBox,1个Button,位置如下设置Button的显示改为打开串口添加ComboBox显示的内容5.1:以波特率的ComboBox详细叙述拖拽串口控件获取电脑上可用串口,并显示在端口号的Co...
2020-05-06 20:46:31
8537
6
原创 24L01模块
Enhanced ShockBurstTM发送模式初始化(1)写TX节点的地址TX_ADDR(2)写RX节点的地址(主要是使能Auto Ack) RX_ADDR_P0(3)使能AUTO ACK EN_AA(4)使能PIPE0 EN_RXADDR(5)配置自动重发次数SETUP_RETR(6)选择通信频率RF_CH(7)配置发射参数(低噪放大器增益,发射功率,无线速率)(8)配置2...
2020-05-05 22:01:27
518
转载 sizeof和strlen的区别
sizeof和strlen的区别sizeof是一个操作符,strlen是库函数。sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘\0‘的字符串作参数。编译器在编译时就计算出了sizeof的结果。而strlen函数必须在运行时才能计算出来。并且sizeof计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度。数组做sizeof的参数不退化,传递给...
2020-04-27 23:02:38
182
原创 测速( PI算法)
测速( PI算法)假设小车在上面直立控制调节下已经能够保持平衡了,但是由于安装误差,传感器实际测量的角度与车模角度有偏差,因此小车实际不是保持与地面垂直,而是存在一个倾角。在重力的作用下,小车就会朝倾斜的方向加速前进。控制速度只要通过控制小车的倾角就可以实现了。(1)如何测量小车速度? (2)如何通过小车直立控制实现小车倾角的改变? (3)如何根据速度误差控制小车倾角? (1)第一...
2020-04-24 22:13:44
1347
原创 J-Link
J-Link 的 SWD(两线)仿真J-Link 的 SWD 只需要2根线:PA13/JTMS/SWDIO、 PA14/JTCK/SWCLKJLINKV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLKJLINKV8 需要 5 个引脚我的个人理解: 我认为有这个引脚是最合适的, 仿 真器对目标板子的仿真需要用到 RST 引脚, 其实使用仿真器内部的 VCC 做...
2020-04-19 13:55:46
664
原创 ADC单次转换
ADC单次转换1.开启PA口时钟和ADC1时钟,设置PA1为模拟输入//fengGPIO_Init();APB2PeriphClockCmd():2.复位ADC1,同时设置ADC1分频因子。//fengRCC_ADCCLKConfig(RCC_PCLK2_Div6);ADC_DeInit(ADC);3.初始化ADC1参数,设置ADC1的工作模式以及规则序列的相关信息//fe...
2020-04-17 23:36:37
500
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人