当前位置: 首页 > news >正文

8051/2单片机常用的本地通讯方式 UART,RS485,I2C,SPI

一 ,单片机串口通讯

1. 串口UART, 波特率:9600

接设备的时候,一般只接GND RX TX,不会接Vcc,避免与目标设备上的供电冲突。

1.1 RS485标准( +2V ~ +6V:1 / -6V ~ -2V:0)

1.2 RS232标准( -15V ~ -3V:1 / +3V  ~ +15V:0),需要MAX232进行电平反转后,才能与MCU进行通讯

1.3 TTL标准( 2.4V--5V:1 /  0V--0.5V:0 )

二、演示

 

三、代码:

/**
* 8051/2 DEMO 3
* 常用的本地通讯方式
* 1. 串口UART, 波特率:9600
* 接设备的时候,一般只接GND RX TX,不会接Vcc,避免与目标设备上的供电冲突。
* 1.1 RS485标准( +2V ~ +6V:1 / -6V ~ -2V:0)
* 1.2 RS232标准( -15V ~ -3V:1 / +3V  ~ +15V:0),需要MAX232进行电平反转后,才能与MCU进行通讯
* 1.3 TTL标准( 2.4V--5V:1 /  0V--0.5V:0 )
* 
* 2. I2C(SCL,SDA)
* 3. SPI (SCLK,SDO,SDI) 全双工
*/#include "REG52.H"
#include <string.h>typedef unsigned char U8;/** * PART 1 串口通讯 * RXD 和 TXD * IO口:P3^0 和 P3^1  **///串口初始化
void uart_init()
{ SCON = 0x50;TMOD = 0x20; //选择 定时器1//装在波特率 高8位和低8位,9600TH1 = 0xFD;TL1 = 0xFD;ES = 1; //打开串口中断TR1 = 1; //打开定时器1EA = 1; //打开总中断
}//接收单个字符
U8 uart_get_char()
{U8 rx_data = 0;while(0==RI); //0 串口没有数据//如果是1rx_data = SBUF;RI=0;return rx_data;
}//发送一个字符
void uart_send_char(char str)
{SBUF = str; //将待发送的字符串放入缓冲器while(TI==0); //等待完发送TI=0;       // 发送中断标志 清0
}//发送字符串
void uart_send_string(U8 *buffer)
{U8 *plter = buffer;while((*plter)!=0x00){uart_send_char(*plter);plter++;}
}//发送16进制数组, arr 数组,len 发送长度
void uart_send_bytes(U8 *arr,U8 len)
{U8 i;for(i=0;i<len;i++){U8 one = arr[i];uart_send_char(one);}
}//串口中断业务处理 
void uart_handle() interrupt 4
{//业务处理,字符和并到数组U8 rx_datas[6]; //需要比正常定义的数组大1U8 i=0;for(i=0;i<5;i++){U8 rx_data = uart_get_char();rx_datas[i] = rx_data;}//判断是否为 hello , 则返回  hello wordif (strcmp(rx_datas, "hello")==0){uart_send_string("hello word \r\n");}//判断输入的是否为 ilove, 则返回  i love youif(strcmp(rx_datas,"ilove")==0){uart_send_string("i love you \r\n");}//16HEX判断 ,03 02 01 01 01 , 则返回 A1 A2 A3 A4 A5 A6if(rx_datas[0]==0x03 && rx_datas[1]==0x02 && rx_datas[2]==0x01 && rx_datas[3]==0x01 && rx_datas[4]==0x01){U8 code hexdata[] = {0xA1,0xA2,0xA3,0xA4,0xA5,0xA6};uart_send_bytes(hexdata,6);} 
}void main()
{uart_init();while (1){}
}

感谢您的支持,写的文章如对您有所帮助,开源不易,请您打赏,谢谢啦~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-2689.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

ann2snn的代码分析

首先&#xff0c;主函数是if_cnn_mnist_work.py 1.输出snn测试结果的就是这么一些代码&#xff1a; utils.pytorch_ann2snn(model_namemodel_name,norm_tensornorm_tensor,test_data_loadertest_data_loader,devicedevice,TT,log_dirlog_dir,configconfig)2.ctrl鼠标左键点击py…...

虚拟内存和地址空间

目录 一、物理内存vs虚拟内存 二、物理内存空间和虚拟内存空间 三、32bit的地址空间 四、cpu位宽和cpu地址总线宽 五、虚拟内存地址空间划分 六、虚拟地址和物理地址的映射 早期的计算机程序都是直接跑在物理内存上的&#xff0c;这就要求程序大小不能超过物理内存的上限…...

STM32CubMx自学笔记(一)-LED灯翻转

STM32CubMX自学笔记&#xff08;一&#xff09;---LED灯翻转工程创建系统具体配置工程代码编写下载验证结语工程创建 首先得安装STM32CubMx软件。具体安装步骤参照 保姆级安装步骤&#xff0c;这里将不再赘述&#xff0c;第一节主要是介绍新工程的创建&#xff0c;首先在桌面打…...

十四、Python第十四课——文件和异常

&#xff08;请先看这篇文章&#xff1a;https://blog.csdn.net/GenuineMonster/article/details/104495419&#xff09; 如果看完这篇博文&#xff0c;你的问题还是没有解决&#xff0c;那么请关注我的公众号&#xff0c;后台发消息给我吧&#xff0c;当天回复&#x…...

微信小程序趋势及前景,大厂直通车!

最近看到群里看到一个女生&#xff0c;讲述了她从开始选择Android&#xff0c;经过非常努力的学习和挣扎&#xff0c;然而最后面对当前的环境却不得不放弃。看完以后真的非常替她感觉惋惜&#xff0c;如果早几年入行可能结果会比现在好很多&#xff0c;但可惜&#xff0c;这就是…...

设计模式导读助记

各个设计模式的详细介绍都已经完成&#xff0c;但是不经常用总会忘&#xff0c;所以我想用 一句话 总结设计模式&#xff0c;思考模式的真正意图&#xff0c;再用 一点提示 来思考代码如何实现 写在前面 我整理的设计模式这一个系列&#xff0c;主要是结合了以下几本书 : 《设…...

RT-Thrad|STM32F103+ESP8266 S01+RT-Thread联网之环境搭建(1/3)

文章目录前言硬件准备百问网STM32F103ESP8266 01SESP8266 介绍ESP8266 01S技术规格参数软件准备下载安装 Keil μVision5Pack Installer安装 ST-Link 驱动获取RT-Thread源码下载安装 RT-Thread env 工具文章列表 RT-Thrad|STM32F103ESP8266 S01RT-Thread联网之环境搭建(1/3)RT…...

elementUI-Tree 树形控件的使用

elementUI-Tree 树形控件的使用 实现效果&#xff1a; 控件的官方使用说明 控件要求返回的数据结构 {"success": true,"code": 20000,"message": "成功","data": {"items": [{"id": "1394579386…...

2021java1年经验公司面试真题

1面我就省略了&#xff0c;主要就是看你的以前工作情况&#xff0c;以前工作内容能不能清晰表达&#xff0c;还有一些简单的java基础问题&#xff0c;大概20多分钟。二面就是40分钟基础&#xff0c;20分钟业务&#xff0c;10分钟个人情况。下面是二面问题 1.自我介绍 做一下自…...

Unity基础之C#核心篇笔记4:多态

Unity基础之C#核心篇笔记4&#xff1a;多态多态1.多态的概念2.解决的问题3.多态的实现4.总结抽象类和抽象方法1.抽象类2.抽象函数3.总结4.练习题接口1.接口的概念2. 接口的申明3.接口的使用4.接口可以继承接口5.显示实现接口6.总结7.练习题密封方法1.密封方法基本概念2.实例3.总…...

LeetCode每日一题 - 有多少小于当前数字的数字

题目&#xff1a; 给你一个数组 nums&#xff0c;对于其中每个元素 nums[i]&#xff0c;请你统计数组中比它小的所有数字的数目。 换而言之&#xff0c;对于每个 nums[i] 你必须计算出有效的 j 的数量&#xff0c;其中 j 满足 j ! i 且 nums[j] < nums[i] 。 以数组形式返回…...

用Python爬取彼岸图网图片

用Python爬取彼岸图网图片 *使用了 四个模块 import time import requests from lxml import etree import os 没有的话自行百度安装。 #encoding utf-8 import time import requests from lxml import etree import os# http://www.netbian.com/ 爬虫 if __name__ __mai…...

第k个数(快速选择)

算法思路 快速选择&#xff1a; 1.即任意选一个数&#xff0c;将数组划分为二。 2.最终根据该数所在的位置&#xff0c;即第&#xff1f;大&#xff0c;选择第k大的数字所在区间进行划分。 时间复杂度分析&#xff0c;第一次划分n,下一次划分期望n/2&#xff0c;n/4…累加和小…...

yolov5 detect.py报错

新手求助 yolov5训练了自己的数据集后&#xff0c;test没问题&#xff0c;但是运行detect.py就报错了&#xff0c;一直找不到问题所在&#xff0c; 求大佬指点指点...

DEX 争霸战火升级,BabySwap 会否成为下一代黑马?

在 AMM机制大力推动下&#xff0c;DEX的群雄争霸比预想中来得要快且凶猛。伴随着诸如高盛等主流资本逐步认可DeFi 的意义&#xff0c;在真正的去中心化金融爆发的前夜&#xff0c;可以说谁抢占了DEX 红海的先机&#xff0c;谁就赢得了未来。 从早期以太坊的Uniswap和DoDo&…...

flutter 常用的第三方组件

引用文章链接&#xff1a; https://www.jianshu.com/p/a523e5f131b2 1、格式化日期时间组件&#xff1a;https://pub.dev/packages/date_format 2、日期选择组件&#xff1a;https://pub.dev/packages/flutter_cupertino_date_picker 3、轮播图组件&#xff1a;https://pub.…...

Android面试回忆录:帮助程序员提高核心竞争力的30条建议,真香!

**新技术层出不穷&#xff0c;去年kotlin到如今Flutter&#xff0c;技术迭代&#xff0c;你是否会变得固步自封&#xff1f;**那么看本篇文章帮你解决问题&#xff0c;让你知道怎么样学习&#xff0c;学习那些技术点才能不被时代的迭代快速淘汰&#xff01; 首先&#xff0c;先…...

2021-05-30解决centos+宝塔面板,FTP传输421 Too many connections问题错误

解决centos宝塔面板&#xff0c;FTP传输421 Too many connections”问题错误 1、首先连入服务器 在/www/server/pure-ftpd/etc下&#xff0c;找到pure-ftpd.conf 2、vim pure-ftpd.conf 没有vim的&#xff0c;用其他编辑软件也可以 3、找到 #Maximum number of sim clients wit…...

RK3399 DDR频率修改

RK3399 DDR频率修改 一、DDR当前频率获取与可调节范围 1、获取当前DDR频率、可调值、容量 cat /sys/class/devfreq/dmc/cur_freq2、查看DDR频率可调节的值 cat /sys/class/devfreq/dmc/available_frequencies3、获取DDR容量 cat /proc/meminfo二、DDR测试定频 1、因为RK3…...

javascript正则表达式常用合集

javascript正则表达式常用的合集 参考网址 {n}: n 是一个正整数&#xff0c;匹配了前面一个字符刚好出现了 n 次 {n,}: n是一个正整数&#xff0c;匹配前一个字符至少出现了n次 {n,m}: n 和 m 都是整数。匹配前面的字符至少n次&#xff0c;最多m次。如果 n 或者 m 的值是0&…...

CGB2103-day05-Ajax/JSON结构说明/跨域问题/VUE入门

1.jQuery中的Ajax 1.1 $.ajax说明 /*** $.ajax相关说明* 1.{key:value}* 2.type: ajax请求的方式 get/post/put/delete* 3.简化$.get(..) $.post(...) $.getJSON(...)* 4.url: 远程服务器地址* JSONP: JS端解决跨域问题的一种机制. 现在几乎淘汰了* cache: true 默认值为true…...

超详细讲解!Redis面试复习大纲在手面试不慌

前言 最近有很多朋友向我求教经验&#xff0c;因为我自己工作相对于稳定&#xff0c;在这里给大家分享一个粉丝朋友的经历&#xff0c;他作为一个曾经的菜鸡面试者&#xff0c;在不断的失败中成长&#xff0c;最终斩获了多份offer&#xff0c;因此特别想在此分享一下他的面试成…...

测试技巧:弱网测试

弱网测试场景 当前APP网络环境比较复杂&#xff0c;网络制式有2G、3G、4G网络&#xff0c;还有越来越多的公共Wi-Fi。不同的网络环境和网络制式的差异&#xff0c;都会对用户使用app造成一定影响。另外&#xff0c;当前app使用场景多变&#xff0c;如进地铁、上公交、进电梯等…...

赶紧收藏!javasocket聊天室和私聊

前言 这些算法&#xff0c;都是小编一点一点看的大佬们的方法&#xff0c;自己积累的. 如果有什么描述的不对的地方还望大佬赐教 多交流才能进步&#xff0c;加油&#xff0c;冲冲冲&#xff01;&#xff01;&#xff01; RPC概述 RPC(Remote Procedure Call)即远程过程调用&a…...

2021-06-01 中小型物流企业仓库管理中存在的问题

中小型物流企业信息化程度虽然在近几年有所提高&#xff0c;但物流信息化程度仍有待加强&#xff0c;同时存在以下问题&#xff1a;物流信息化程度较低&#xff0c;订单电子化水平明显不高&#xff0c;许多工作尚停留在手工作业阶段&#xff0c;导致员工工作效率不高&#xff0…...

C1任务二

任务点1.网络抓包 进入网址&#xff1a;http://temp.blog8090.com/ 输入手机和姓名 提交表单 打开控制台network 返回http://temp.blog8090.com/ 打开F12查看并修改元素 输入信息&#xff1a;手机&#xff0c;姓名&#xff0c;暗号 并提交表单 至此&#xff0c;任务点一完成…...

诚意分享:这里有份超全Java体系化进阶学习图谱

摘要 Apache Kafka是一个分布式消息发布订阅系统。它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log)&#xff0c;之后成为Apache项目的一部分。 成千上万的企业都在使用Kafka&#xff0c;三分之一的世界500强公司也在其中&…...

Burp Suite功能介绍

一、概述 Burp Suite 是用于攻击web 应用程序的集成平台&#xff0c;包含了许多工具。BurpSuite为这些工具设计了许多接口&#xff0c;以加快攻击应用程序的过程。 &#x1f449; 下载及安装过程 二、工具栏功能简介 1. Dashboard(仪表盘) 主要分为三块&#xff1a;Tasks(任务…...

Ant Design Vue实现a-table表格单元格合并

Ant Design Vue实现a-table表格单元格合并 参考Ant design Vue官网关于行和列合并api https://antdv.com/components/table-cn/ 下面官网对表格合并这块的描述 &#xff01;&#xff01;&#xff01;注意注意注意重要事情说三遍&#xff1a;很多同学都习惯性的将columns写在d…...

Android Studio如何导出apk文件

我们平时写Android&#xff0c;大多数情况是在模拟器上运行调试。但实际开发中&#xff0c;有许多大型项目&#xff0c;比如无人车的操控&#xff0c;需要将应用放到遥控器上调试成功才行。有时候&#xff0c;大家也想把做好的APP放到自己手机上试一下。这时候&#xff0c;我们…...

pts_dts解析

在ffmpeg中&#xff0c;经常看到avpriv_set_pts_info(st, 33, 1, 90000);用来设置AVStream的time_base。 void avpriv_set_pts_info(AVStream *s, int pts_wrap_bits, unsigned int pts_num, unsigned int pts_den) 但是&#xff0c;为什么pts_wrap_bits为33&#xff0c;pts_…...

linux中进程pts 1和pts 3,termial创建时ptmx与pts的关系

我们打开一个terminal,那么将会在devpts文件系统/dev/pts下创建一个对应的pts字符文件,该pts字符文件节点直接由/dev/ptmx节点的驱动函数ptmx_open()调用devpts_pty_new(tty->link)[tty对应ptmx,tty->link对应/dev/pts/xxx,那么tty->link->link又对应回ptmx同样ptm…...

图解DTS和PTS

图解DTS和PTS FFmpeg里有两种时间戳&#xff1a;DTS&#xff08;Decoding Time Stamp&#xff0c;解码时间戳&#xff09;和PTS&#xff08;Presentation Time Stamp&#xff0c;显示时间戳&#xff09;。 由于把视频编码成I,B,P等帧&#xff0c;如下图&#xff1a; 假设现在…...

matlab 读取pts_将Mat类型坐标数据生成pts文件

前言获取人脸特征点的坐标信息之后&#xff0c;想要将坐标信息shape保存为pts/asf/txt等文件格式&#xff0c;本文就对此进行实现。实现过程1.确定pts文件的书写格式&#xff1b;以要生成的文件为例&#xff0c;书写格式如下&#xff1a;version: 1n_points:68{185.345840 248.…...

音视频中的PTS和DTS及同步

视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程&#xff0c;就像在一个本子的每一页画上画&#xff0c;然后快速翻动的感觉。 但是在实际应用中&#xff0c;并不是每一帧都是完整的画面&#xff0c;因为如果每一帧画面都是完整的图片&#xff0c;那么…...

ffmpeg的pts之解析

目录 1、认识AVRational&#xff0c;说白了就是个分数a/b, 2、第二个是video_thread()的读帧的一段&#xff0c;每获取一个frame就打印一下log&#xff1b;看pts&#xff0c; 3、为什么这么做&#xff1a; 1、认识AVRational&#xff0c;说白了就是个分数a/b, 下面是定义的…...

linux用户切换pts,linux系统的tty,pts等终端概念

ttyS0~ ttyS3 (串行端口终端)指的是电脑的各个物理接口(这些都是串口&#xff0c;不是并口)&#xff0c;外部的终端通过这些物理接口与电脑连接 &#xff0c;从而实现和电脑进行交互。例如&#xff1a;dmesg |grep tty可以查看开启的接口(串口)目前连接远程服务器或者直接在服务…...

PTS 8.3.1 驱动问题

碰壁 我拿到了dongle, 插到笔记本上后&#xff0c; 驱动是异常状态。 这我熟悉&#xff0c;需要更新驱动&#xff0c;小case。 我按照下面的步骤更新PTS 驱动后&#xff0c; 仍然提示驱动异常。驱动所在目录是对的&#xff0c;不要怀疑这一点。 看到这个提示&#xff0c;傻了…...

tty和pts详解

今天在在使用who和ps命令的时候&#xff0c;出现tty1或者pts/0&#xff0c;因为不太懂就查了一下&#xff1a; 使用tty命令可以查看现在使用的终端标识&#xff1b; 使用ctrlalt[F1~F8]来切换操作终端 使用echo “test xxx” > /dev/ttyx /dev/pts/1可以发送到相应的终端设…...

pts解释

dts/pts定义 dts: decoding time stamp pts: present time stamp 在ISO/IEC13818-1中制定90k Hz 的时钟&#xff0c;如果编码帧频是30&#xff0c;那么时间戳间隔就该是90000 / 30 3000。 在FFMPEG中有三种时间单位&#xff1a;秒、微秒和dts/pts。从dts/pts转化为微秒公式&am…...

linux pts设备,Linux中tty和pts指的是什么

Linux中tty和pts指的是什么发布时间&#xff1a;2020-11-17 14:55:05来源&#xff1a;亿速云阅读&#xff1a;135作者&#xff1a;小新这篇文章将为大家详细讲解有关Linux中tty和pts指的是什么&#xff0c;小编觉得挺实用的&#xff0c;因此分享给大家做个参考&#xff0c;希望…...

tty与pts

tty与pts是终端设备中常见的两个词。以下是自己在学习几篇网络文章之后的理解&#xff0c;还待进一步完善。 1.终端与控制台 终端(terminal):最初的终端&#xff0c;是通过串口连接到计算机的设备(一般带有输入输出功能&#xff0c;如键盘和显示器) 控制台(console)&#xff…...

linux读取pts内容,linux pts/0的含义

pts是所谓的伪终端或虚拟终端&#xff0c;具体表现就是你打开一个终端&#xff0c;这个终端就叫pts/0&#xff0c;如果你再打开一个终端&#xff0c;这个新的终端就叫pts /1。比如用who命令查询当前登录的用户&#xff0c;可以看到每个用户的TTY设备(简单来说就是用户输入命令还…...

音视频包的pts,dts,duration的由来.

音视频包的pts,dts,duration的由来. pts: 演播时间戳 dts:解码时间戳 duration:播放时长 怎样深刻理解这些概念,它们具体代表了什么? 通过具体实例和数据来理解. 包pts: 对于视频包pts, 并不是线性递长的,而是会有浮动, 例如. 以下前12个视频压缩包. packet count:1 ,str…...

BQB pts测试

测试BQB的pts dongle是在蓝牙SIG官网买的,链接是 https://store.bluetooth.com/12210888/orders/d3b63cfd9d3d5a22c2e08ad9711a91c4 pts dongle最新的测试结果 ACS-BV-07-I/ACS-BV-12-I/ACS-BI-13-I 这三个是接完电话就fail ICA-BV-02-I/TCA-BV-01-I 这两个是挂不了电话 ICR-B…...

TTY列下的tty?和pts/1,pts/1,pts/2代表的含义

概述 tty[1-6]就是你用ctraltf[1-6]所看到的那个终端; 即虚拟控制台。其他的是外部终端和网络终端。 pts/*为伪(虚拟)终端, 其中pts/0,1,2在桌面Linux中是标准输入&#xff0c;标准输出&#xff0c;标准出错。 事例图片 tan tty7 2018-12-09 22:13 (:0) tan pts/0 …...

视频流中的DTS、PTS到底是什么

视频流中的DTS、PTS到底是什么 I、P、B 帧 要搞懂 DTS 和 PTS &#xff0c;首先要先了解一下 I、P、B 帧。 I 帧 &#xff1a; 帧内编码帧 又称intra picture&#xff0c;I 帧通常是每个 GOP&#xff08;MPEG 所使用的一种视频压缩技术&#xff09;的第一个帧&#xff0c;经…...

不宁腿的巨大危害你可能不知道!

不宁腿综合征是一种神经系统紊乱的病症&#xff0c;患者在静息状态下出现难以名状的肢体不适感&#xff0c;而迫使肢体发生不自主运动&#xff0c;患病率大约占成年人的5%&#xff0c;以成年人发病为多。男女均可&#xff0c;但女性多见&#xff0c;占三分之二左右。其症状发生…...

纯代码方式杀死指定进程名的进程(LinuxWindows)

纯代码方式杀死指定进程名的进程&#xff08;Linux&Windows&#xff09; 1、命令行方式 1.1、Linux > pidof sftp-server | xargs kill -91.2、Windows > taskkill /im softwareName.exe /f1.3、合入代码中&#xff0c;linux可以使用system&#xff0c;windows可…...

宁波职业技术学院的计算机应用技术怎么样,宁波职业技术学院评价好不好

评价一所学校好坏的标准有很多&#xff0c;如学校排名怎么样&#xff0c;学校师资力量强弱&#xff0c;学校王牌专业多少&#xff0c;教学成绩是否优秀&#xff0c;教育方法科不科学&#xff0c;学生就业情况&#xff0c;校园环境等。下面是宁波职业技术学院的评价&#xff0c;…...