火龙果(redpitaya)开发板常用接口C语言开发指南(十一)——串口通信详解(持续更新中)

本文主要是介绍火龙果(redpitaya)开发板常用接口C语言开发指南(十一)——串口通信详解(持续更新中),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

火龙果(redpitaya)开发板常用接口C语言开发指南(十一)——串口通信详解(持续更新中)

  • 串口通信
    • 串口及使用模块简介
    • red pitaya串口收发红外译码数据

——本人为《火龙果实战指南——搭建基于Zynq处理器的测量仪器与创新实践平台》一书的作者之一,为了便于各位快速上手火龙果开发板,现提供部分实战指南,包含环境配置、源码、效果等,供大家学习交流使用。

Red pitaya开发板设计的初衷是用较低的成本,打造一个开发人员、学生和创客用于测量和控制的工具,以替代数台高价的实验设备。此开发板搭载双核心ARM® Cortex® A9 MCU和FPGA MCU,支持I2C、串口和SPI等数据总线的传输。接下来两节主要介绍如何使用red pitaya开发板板的通信接口进行相关的开发工作。

串口通信

red pitaya开发板实物如下图1所示,其中红色箭头所标注的E2接口为板子带有串口、IIC、SPI的拓展接口。
在这里插入图片描述
图1 red pitaya开发板实物

串口及使用模块简介

串行口是计算机中一种常用的接口,具有连接线少,通讯简单的特点,得到广泛的使用。常用的串口接口是 RS-232-C (又称 EIA RS-232-C),它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。此标准的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个 25 个脚的 DB25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。传输距离在码元畸变小于4% 的情况下,传输电缆长度应为50 英尺。
计算机可以每次传送一个或者多个位(bit)的数据。“串行”指的是每次只传输一位(1bit)数据。当需要通过串行通讯传输一个字(word)的数据时,只能以每次一位的方式接收或者发送。每个位可能是on(1)或者off(0)。很多技术文档中经常用mark表示on,而space表示off。
串行数据的速度通常用每秒传输的字节数bits-per-second(bps)或者波特率(baud)表示。这个值表示的是每秒钟被送出的0和1 的个数。很久以前,300bps就是很快的速度了,而随着科技进步,现在的电脑可以处理高达430,800的RS-232速率。表示波特率的单位还有kpbs和 Mbps,他们之间的关系为1kps=1000bps,1Mbps=1000kbps。一般提到串行设备的时候,通常说可能是某种数据通讯设备-DCE(Data Communications Equipment)或者数据终端设备-DTE(Data Terminal Equipment)。如果需要将两个DTE或者DCE设备连接起来的话,需要适配器或者交叉线缆将信号对交换。
模块结构图如图2所示。首先使用此模块对发射的红外(比如空调遥控器按下开关键)进行解码,解码时不需要发送任何指令,只需要拿起遥控对准模块的接收头按下,这时模块的串口就输出该红外编码。通过程序控制将此解码数据传输到red pitaya开发板。
与此同时,可以将red pitaya开发板收到的编码数据根据一定格式发送出去来远程控制空调的开关,即通过red pitaya开发板发送5个字节的指令,当空调开关按下,red pitaya开发板接收到的数据为(01 03 00),此时调用linux下的串口发射函数发射NEC信号编码为(01 03 00),即:由red pitaya开发板通过串口发射到红外模块的为:{A1,F1,0103,00}。
在这里插入图片描述
图 2 串口收发模块结构图

red pitaya串口收发红外译码数据

在这里插入图片描述
图3 red pitaya扩展接口示意图

如图3所示,red pitaya开发板的E2上的第7脚和第8脚分别对应ARM Cortex A9的uart Tx和uart Rx。由于板子底层搭建的是纯linux,通过linux下c编程可以控制串口的收发。在这个基础上,配合红外译码模块,可以将译码模块串口输出的红外编码显示在linux系统终端上,并且存储在板子EEPROM中。与此同时,可以根据配合本例程所需的红外译码模块的发射红外功能,通过编程远程遥控家用电器。
要完成此项例程,主要需要保证red pitaya开发板的串口收发功能正常工作:首先使用USB转TTL接口模块,实现red pitaya开发板与电脑的连接。通过串口助手显示red pitaya开发板发送给电脑的数据,并且也可以通过串口助手发送数据至red pitaya开发板。
连接开发板并在项目文件夹redpitaya下创建UART-Pitaya.c文件,写入如下代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>    //文件控制定义
#

这篇关于火龙果(redpitaya)开发板常用接口C语言开发指南(十一)——串口通信详解(持续更新中)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/286650

相关文章

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

详解Java中的敏感信息处理

《详解Java中的敏感信息处理》平时开发中常常会遇到像用户的手机号、姓名、身份证等敏感信息需要处理,这篇文章主要为大家整理了一些常用的方法,希望对大家有所帮助... 目录前后端传输AES 对称加密RSA 非对称加密混合加密数据库加密MD5 + Salt/SHA + SaltAES 加密平时开发中遇到像用户的

Java 枚举的常用技巧汇总

《Java枚举的常用技巧汇总》在Java中,枚举类型是一种特殊的数据类型,允许定义一组固定的常量,默认情况下,toString方法返回枚举常量的名称,本文提供了一个完整的代码示例,展示了如何在Jav... 目录一、枚举的基本概念1. 什么是枚举?2. 基本枚举示例3. 枚举的优势二、枚举的高级用法1. 枚举

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

Springboot使用RabbitMQ实现关闭超时订单(示例详解)

《Springboot使用RabbitMQ实现关闭超时订单(示例详解)》介绍了如何在SpringBoot项目中使用RabbitMQ实现订单的延时处理和超时关闭,通过配置RabbitMQ的交换机、队列和... 目录1.maven中引入rabbitmq的依赖:2.application.yml中进行rabbit

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

Python绘制土地利用和土地覆盖类型图示例详解

《Python绘制土地利用和土地覆盖类型图示例详解》本文介绍了如何使用Python绘制土地利用和土地覆盖类型图,并提供了详细的代码示例,通过安装所需的库,准备地理数据,使用geopandas和matp... 目录一、所需库的安装二、数据准备三、绘制土地利用和土地覆盖类型图四、代码解释五、其他可视化形式1.

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输