C#winform上位机开发学习笔记2-串口助手的中文支持功能添加

分为两步:

1.串口接收支持中文显示

1.1.在软件初始化时写入此代码以支持汉字显示

            //串口接收支持中文显示serialPort1.Encoding = Encoding.GetEncoding("GB2312");  //串口1的解码支持GB2312汉字

2.串口发送支持中文输出

                    //支持中文输出Encoding Chinese = System.Text.Encoding.GetEncoding("GB2312");//定义一个可以进行中文编码的变量byte[] Sendbytes = Chinese.GetBytes(textBox5.Text);//将发送框的内容编译为中文

3.完整代码

//串口发送按钮private void button29_Click(object sender, EventArgs e){byte[] data = new byte[1];//发送函数需要定义数组首地址//发送格式为ASCIIif (!checkBox24.Checked)//复用框没有被选择时{try{//支持中文输出Encoding Chinese = System.Text.Encoding.GetEncoding("GB2312");//定义一个可以进行中文编码的变量byte[] Sendbytes = Chinese.GetBytes(textBox5.Text);//将发送框的内容编译为中文//遍历发送用法foreach (byte Member in Sendbytes)//循环函数{data[0] = Member;serialPort1.Write(data, 0, 1);//单字节发送}//发送回车换行if (checkBox26.Checked)//发空复选框{data[0] = 0x0D;//发送回车serialPort1.Write(data, 0, 1);data[0] = 0x0A;//发送换行serialPort1.Write(data, 0, 1);}}catch{textBox1.AppendText("\r\n串口数据发送错误!\r\n");//textBox5.Text = "";//若出现错误不清空发送框的内容//串口按钮显示为关闭serialPort1.Close();button2.BackgroundImage = Properties.Resources.Image_CloseSerial;button2.Tag = "OFF";}}//发送格式为HEXelse{//处理字符串string Buf = textBox5.Text;Buf = Buf.Replace("0x", string.Empty);//将buf中的0x替换为空格,消除0x的不规范书写方式Buf = Buf.Replace("0X", string.Empty);Buf = Buf.Replace(" ", string.Empty);byte[] Calculate_CRC = new byte[(Buf.Length - Buf.Length % 2) / 2];//CRC缓存区textBox5.Text = " ";//循环发送for (int i = 0; i < (Buf.Length - Buf.Length % 2) / 2; i++)//取余运算作用是防止用户输入的字符为奇数个{textBox5.AppendText(Buf.Substring(i * 2, 2) + " ");//Buf.Substring为Buf的子字符串,长度为2try{data[0] = Convert.ToByte(Buf.Substring(i*2,2),16);//将字符串转换为十六进制的整型serialPort1.Write(data, 0, 1);//单字节发送Calculate_CRC[i] = data[0];//CRC参数赋值}catch{textBox1.AppendText("\r\n串口数据发送错误!\r\n");//textBox5.Text = "";//若出现错误不清空发送框的内容//串口按钮显示为关闭serialPort1.Close();button2.BackgroundImage = Properties.Resources.Image_CloseSerial;button2.Tag = "OFF";}}//发送CRCif (checkBox25.Checked){UInt32 CRC = Crc_Check(Calculate_CRC, (byte)Calculate_CRC.Length);//crc计算byte CRC_H = (byte)(CRC >> 8);byte CRC_L = (byte)CRC;try{data[0] = CRC_L;serialPort1.Write(data, 0, 1);//发送低位data[0] = CRC_H;serialPort1.Write(data, 0, 1);//发送高位}catch{textBox1.AppendText("\r\n串口数据发送错误!\r\n");//textBox5.Text = "";//若出现错误不清空发送框的内容//串口按钮显示为关闭serialPort1.Close();button2.BackgroundImage = Properties.Resources.Image_CloseSerial;button2.Tag = "OFF";}}}//发送完清空if (checkBox23.Checked)//发空复选框{textBox5.Text = "";}}

4.测试结果

将自定义串口助手与SSCOM进行通讯,测试中文的发送接收,显示发送接收成功表示中文支持功能添加成功

注:学习参考自

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI 公布2024选举虚假信息打击计划

据统计&#xff0c;2024 年预计将有 50 多个国家举行大选&#xff0c;虚假信息的威胁成为人们关注的焦点。 人工智能聊天机器人 ChatGPT 和图像生成器 DALL-E 的开发商 OpenAI 近日宣布了一项新的措施&#xff0c;以防止在今年大选之前再次出现虚假信息滥用和误导事件。 本周…

域环境权限提升

Windows系统配置错误 在Windows系统中&#xff0c;攻击者通常会通过系统内核溢出漏来提权&#xff0c;但是如果碰到无法通过系统内核溢出漏洞法国提取所在服务器权限的情况&#xff0c;就会系统中的配置错误来提权。Windows系统中常见哦欸之错误包括管理员凭证配置错误&#x…

思绪记忆:伦敦金是以美元计价的黄金!

伦敦金是以美元计价的黄金衍生投资品种&#xff0c;是一种交易网络遍及各个主要市场的黄金保证金交易方式。目前投资者通过香港到伦敦金平台入市&#xff0c;只需要付出2%的保证金&#xff0c;就可以拥有一手100盎司、价值20多万的标准化黄金合约的交易权益&#xff0c;无论在涨…

ChatGPT Plus续费充值,到账延迟,如何申诉?

ChatGPT Plus充值总是到账延迟比较严重&#xff0c;一般多是通过充值链接代充值遇到&#xff0c;如果是账号登陆充值&#xff0c;是即时到账。但是有的客户不愿意提供账号密码&#xff0c;遇到延迟到账的情况如何解决呢&#xff1f;客户可按下面操作申诉&#xff0c;可快速到账…

npm pnpm yarn 报错或常见问题处理集锦

各种卡死&#xff0c;报错问题处理汇总 1. npm 安装 卡死了怎么办&#xff0c;npm # 切换源 npm config set registry https://registry.npmmirror.com # 查看源 npm config get registry2. pnpm安装 卡死了怎么办 方法1&#xff1a;切换源 npx pnpm config set registry h…

政务服务场景为何要打造AI交互数字人?

随着Chat GPT兴起&#xff0c;越来越多服务场景通过AI交互数字人以多模态交互形式实现人机交互。如近日昆山市档案馆推出了AI交互数字人“昆兰”&#xff0c;数字人设置于市档案馆一楼大厅入口处&#xff0c;市民可以与AI交互数字人进行实时问答交流&#xff0c;了解总书记关于…

Kafka-多线程消费及分区设置

目录 一、Kafka是什么&#xff1f;消息系统&#xff1a;Publish/subscribe&#xff08;发布/订阅者&#xff09;模式相关术语 二、初步使用1.yml文件配置2.生产者类3.消费者类4.发送消息 三、减少分区数量1.停止业务服务进程2.停止kafka服务进程3.重新启动kafka服务4.重新启动业…

Leetcode刷题笔记题解(C++):200. 岛屿数量

思路&#xff1a;利用深度优先搜索的思路来查找1身边的1&#xff0c;并且遍历之后进行0替换防止重复dfs&#xff0c;代码如下所示 class Solution { public:int numIslands(vector<vector<char>>& grid) {int row grid.size();int col grid[0].size();int n…

滚动菜单+图片ListView

目录 Fruit.java FruitAdapter MainActivity activity_main.xml fruit.xml 整体结构 Fruit.java public class Fruit {private String name;private int imageId;public Fruit(String name, int imageId) {this.name name;this.imageId imageId;}public String getNam…

【从零开始学习Redis | 第七篇】利用Redis构造全局唯一ID(含其他构造方法)

目录 前言&#xff1a; 什么是全局唯一ID&#xff1f; 尝试构造全局唯一ID&#xff1a; 其他构造全局唯一ID的方法 1.基于数据库自增构造全局唯一ID&#xff1a; 2.基于UUID构造全局唯一ID&#xff1a; 3.基于雪花算法构造全局唯一ID&#xff1a; 总结&#xff1a; 前…

在客户端访问远程Linux服务器的私有IP地址的URL

文章目录 环境背景SSH tunnel和正向/反向代理步骤第一步第二步效果考一考 其它多次跳转另一种方法&#xff1a;正向代理 参考 环境 服务器&#xff1a;Ubuntu 22.04客户端&#xff1a;Mac 14.2.1 背景 在远程Linux服务器上搭建了minikube环境。minikube提供了dashboard功能&…

ChatGPT付费创作系统V2.5.8独立版+前端

小狐狸ChatGPT付费创作系统V2.5.8版本最大特点新增PC端绘画功能全新升级。该版本为编译版无开源&#xff0c;本版本同样处理了后台弹窗、暗链网址。单独制作了2.5.5升级至2.5.8数据库升级包及升级文件&#xff0c;直接导入即可使用。本版本升级后唯一BUG后台绘画功能新增的翻译…

酷开科技将AR技术多方应用 打造全能酷开系统

酷开系统AR技术的核心是通过计算机视觉、图形渲染和深度感知等技术&#xff0c;将虚拟物体或信息精确地叠加到现实世界的场景中。通过智能摄像头捕捉真实环境的图像和视频&#xff0c;结合3D渲染技术&#xff0c;生成与现实场景相融合的虚拟图像&#xff0c;实现虚实结合的视觉…

最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作

详情点击链接&#xff1a;最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析&#xff0c;AI画图&#xff0c;图像识别&#xff0c;文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Clau…

编译FFmpeg4.3.1 、x264并移植到Android

1、前言 FFmpeg 既是一款音视频编解码工具&#xff0c;同时也是一组音视频编解码开发套件。 2、准备工作 系统&#xff1a;LinuxNDK&#xff1a;android-ndk-r21b-linux-x86_64.zipFFmpeg&#xff1a;ffmpeg-snapshot.tar.bz2x264&#xff1a;x264 3、下载NDK 在linux环境中…

hanlp,pkuseg,jieba,cutword分词实践

总结&#xff1a;只有jieba,cutword,baidu lac成功将色盲色弱成功分对,这两个库字典应该是最全的 hanlp[持续更新中] https://github.com/hankcs/HanLP/blob/doc-zh/plugins/hanlp_demo/hanlp_demo/zh/tok_stl.ipynb import hanlp # hanlp.pretrained.tok.ALL # 语种见名称最…

RabbitMQ交换机(3)-Topic

1.Topic模式 RabbitMQ的Topic模式是一种基于主题的消息传递模式。它允许发送者向一个特定的主题&#xff08;topic&#xff09;发布消息&#xff0c;同时&#xff0c;订阅者也可以针对自己感兴趣的主题进行订阅。 在Topic模式中&#xff0c; 主题通过一个由单词和点号组成的字…

Git教程学习:07 打标签

文章目录 0 前言1 列出标签2 创建标签3 附注标签4 轻量标签5 后期打标签6 共享标签7 删掉标签8 检查标签 0 前言 像其他版本控制系统&#xff08;VCS&#xff09;一样&#xff0c;Git 可以给仓库历史中的某一个提交打上标签&#xff0c;以示重要。 比较有代表性的是人们会使用…

Unity使用Protobuf

1.下载Protobuf ProtoBuf 2.打开它并且编译 如果有报错下载相应的.net版本即可 这里默认是6.0.100 由于我本机是8.0.100所以我改了这个文件 3.编译后的文件复制到Unity Assets/Plugins下 4.写个测试的proto文件 5.然后使用protoc生成 这里实现了一个简单的bat批量生成 Protos C…

微软与沃达丰签订10年合作,提供Copilot等生成式AI服务

1月16日&#xff0c;微软在官网宣布&#xff0c;与全球最大电信公司之一沃达丰&#xff08;Vodafone&#xff09;签订10年合作协议&#xff0c;将为3亿多企业、消费者提供生成式AI、云和数字服务等。 通过此次合作&#xff0c;沃达丰将利用微软的Copilot等生成式AI来改变客户、…