自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 I2C总线与E2PROM

I2C总线由飞利浦公司开发,属于两线式串行总线。I2C总线的主要特点就是接口简单,两条线可以挂多个参与通信的器件,即多机模式。而且任何一个器件都可以作为主机,但同一时刻只能有一个主机。I2C属于同步通信,SCL时钟线负责收发双方的时钟节拍,SDA数据线负责传输数据,I2C的发送方和接收方都已SCL时钟节拍为基准进行数据的发送和接收。1、初识连接到I2C总线的所有器件的SCL都连在一起,所有SDA都连在一起。如图所示,I2C具有起始信号、数据传输、停止信号I2C起始信号:...

2021-12-04 17:07:29 1467

原创 UART通信

UART通信属于串行通信,异步串行通信。波特率就是发送二进制数据位的速率,习惯称为baud。即发送一位二进制数据的持续时间为:1/baud。通信之前需约定单片机1,2之间的波特率必须保持一致,才能正常实现通信。UART通信时,一个字节时8位,现定当没有通信信号发生时,通信线路保持高电平,发送数据之前,首先会发送一位“0”表示起始位,然后发送一个字节的8位数据,数据位发送完成后再发一位“1”表示停止。(发送顺序:先低位后高位)。通信的三种基本类型:1、单工通信就是指允许一方向另一方传送信息,另一方不能

2021-11-30 21:41:10 640

原创 一、通讯的硬件层协议,主从模式的建立

一、MODBUS通信协议1、通信协议设备1与设备2为了实现数据交互,就要选择一种通信协议来保证数据能够正常传输。通信协议分为两层:硬件层协议与软件层协议,这两种协议一起作用才能够保障设备之间数据能够正常的交互。硬件层协议主要的作用是解决0与1电平的传输问题,可以简单的将硬件层协议理解为公路,若发送端要发送个1给对方,线上的电压应保持在多少伏。若发个0,线上的电压应保持在多少伏。(能够使用仪表进行测量的,能够触摸,看的见得都是有硬件层协议去约束如何传输)MCU的关键输出一般为TTL电平,TTL电平

2021-11-29 22:38:58 3090

原创 UCOS-III学习(四)——消息队列

1、基本概念队列,消息队列,用于任务间通讯的数据结构。队列可在任务与任务之间,中断和任务之间传递信息。当队列中的信息是空的,读取消息的任务将被阻塞并等待队列数据有效。用户可指定阻塞的任务时长。当队列有消息,被阻塞的任务会被唤醒并处理新消息。当等待的时间超过了指定的阻塞时间,即使队列中仍没有有效数据,任务也会从阻塞态转为就绪态。当有多个消息发送至消息队列时,通常是先进入消息队列的消息先传给任务——“先进先出”。2、工作过程2.1 消息池初始化在OSIniit()函数时,消息池进行初始化。2

2021-11-25 22:14:51 2723

原创 UCOS-III学习(三)——任务管理

1、任务的基本概念在任何时刻只有一个任务得到运行,ucos的调度器决定运行哪个任务。ucos的任务是抢占式调度机制,高优先级的任务可打断低优先级的任务。2、任务调度器的基本概念暂无3、任务状态迁移创建任务——>就绪态;就绪态——>运行态;运行态——>就绪态;(当有更高优先级任务创建或恢复,会发生任务调度,优先级高的任务转为运行态,原先运行的任务转换为就绪态。)运行态——>阻塞态;(正在运行的任务发生阻塞)阻塞态——>就绪态;...

2021-11-18 20:04:48 290

原创 UCOS-III学习(二)——ucos-iii的启动流程

1、系统的启动系统上电第一个运行的是启动文件中的复位函数Reset_Handler()函数,函数最后调用main()函数,程序正式启动。2、系统初始化调用创建任务函数前需对系统进行一次初始化,如空闲任务,时钟节拍任务的初始化可通过配置宏定义进行。3、CPU初始化CPU初始化很重要就是初始化时间戳,其精度为1ns。4、SysTick初始化时钟节拍的频率为1s产生多少个Tick,tick为操作系统节拍数的时钟周期。需在“os_cfg_app.h”中设定节拍频率,一般采用1000HZ,也就是时钟节拍

2021-11-18 19:39:43 744

原创 UCOS-III学习(一)——创建任务

创建任务1、定义任务栈在UCOS中,每个任务都是独立的,它们的运行环境都单独的保存在各个栈空间,任务使用的栈和任务控制块都使用的是静态变量,也就是全局变量。#define APP_STK_SIZE 128static CPU_STK APPTaskStartStk[APP_STK_SIZE];2、定义任务控制块任务控制块就是一个结构体,其中的成员共同描述了任务的全部信息。static OS_TCB APPTaskTCB;3、定义任务主体函数任务实际上就是一个无限循环且不带返回值的C

2021-11-18 19:22:07 1154

原创 2021-09-23

基于RS485的MODBUS通讯(三)程序若采用RTU协议通讯,则需使用CRC校验方式,在程序中加入CRC算法(固定格式)。modbus.c文件首先要实现MODBUS初始化,以及数据的接收工作,为了程序使用方便,在h文件中定义相关结构体,把MODBUS所需的东西集中在结构体中。typedef struct{ unsigned char myaddr; //设备地址 unsigned char rcbuf[100]; //接收数据缓冲区 unsigned short time

2021-09-23 16:17:51 81

原创 上拉电阻和下拉电阻的原理

首先上拉电阻是接到VCC,下拉电阻是接到GND 不是说加了电阻就能上拉和下拉,是要看电阻怎么接法,拉在哪个地方 上拉电阻肯定是接到VCC(电源),我们以高电压理解为上 下拉电阻肯定接的是GND(电源),我们以低电压理解为下首先上拉电阻是接到VCC,下拉电阻是接到GND不是说加了电阻就能上拉和下拉,是要看电阻怎么接法,拉在哪个地方上拉电阻肯定是接到VCC(电源),我们以高电压理解为上下拉...

2019-11-23 22:27:22 2796

空空如也

空空如也

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

TA关注的人

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