迪文串口5使用查询方式发送数据

2023-12-05 19:01

本文主要是介绍迪文串口5使用查询方式发送数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

迪文屏串口5寄存器如下

发送数据我采用的不是中断,而是查询发送标志位实现的。

串口5不像串口2一样(串口2可以位寻址,串口5不行),所以如果采用查询模式,需要判断寄存器的数据,我的写法比较简单,没有使用移位操作来判断(高手勿喷)。

程序如下所示:

//发送一个字节
void u5_send_byte(u8 byte)
{EA = 0;SBUF3_TX = byte;while(!(SCON3T & 0X01 == 0X01));//判断TI未是否发送完成 置1---发送完成SCON3T &= 0XFE;//TI位第一位清0EA = 1;
}//发送数据 
void u5_send_bytes( u8 *bytes,u16 len)
{u16 i;for(i=0;i<len;i++)u5_send_byte(bytes[i]);		
}

但调试过程中也遇到了一点小问题,迪文官方对串口5初始化代码如下:

void UART5_Init(u32 bdt)
{u16 tmp;SCON3T = 0X80;SCON3R = 0X80;tmp=FOSC/8/bdt;BODE3_DIV_H = (u8)(tmp>>8);BODE3_DIV_L = (u8)tmp;;IEN1 |= 0X30;//接收中断使能 发送中断使能  
}

官网接收与发送全部使用的是中断处理,如果使用查询“发送标志”的方法来实现串口发送,这里需要把发送中断使能屏蔽掉,寄存器如下

需将程序改为如下:

void UART5_Init(u32 bdt)
{u16 tmp;SCON3T = 0X80;SCON3R = 0X80;tmp=FOSC/8/bdt;BODE3_DIV_H = (u8)(tmp>>8);BODE3_DIV_L = (u8)tmp;;IEN1 |= 0X20;//接收中断使能 发送不中断使能  
}

这样的话就能使用查询的方法是串口5发送数据了

本文章记录开发过程及帮助遇到同样困难的网友。

这篇关于迪文串口5使用查询方式发送数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

mybatis中resultMap的association及collectio的使用详解

《mybatis中resultMap的association及collectio的使用详解》MyBatis的resultMap定义数据库结果到Java对象的映射规则,包含id、type等属性,子元素需... 目录1.reusltmap的说明2.association的使用3.collection的使用4.总

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

mybatis-plus QueryWrapper中or,and的使用及说明

《mybatis-plusQueryWrapper中or,and的使用及说明》使用MyBatisPlusQueryWrapper时,因同时添加角色权限固定条件和多字段模糊查询导致数据异常展示,排查发... 目录QueryWrapper中or,and使用列表中还要同时模糊查询多个字段经过排查这就导致只要whe