ChatGPT win下C语言串口通信

文章目录

    • 1.ChatGPT
    • 2.对ChatGPT进行代码封装

关键词:win环境 C语言 串口通信 ChatGPT

1.ChatGPT

在这里插入图片描述

- com<=com9可以用直接赋值 COMx
- com>com9需要  \\\\.\\COMx
重点//eg:COM1,COM2 ······,  COM10 use \\\\.\\COM10
ChatGPT:Write a serial communication using c in win
#include <windows.h>
#include <stdio.h>int main()
{HANDLE hSerial;DCB dcbSerialParams = {0};COMMTIMEOUTS timeouts = {0};char port[] = "COM1"; // specify the COM port you want to useDWORD bytes_written, bytes_read;char data[] = "Hello world!"; // data to sendchar incoming_data[256]; // buffer to store incoming dataint i;// open the serial porthSerial = CreateFile(port, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);if (hSerial == INVALID_HANDLE_VALUE) {printf("Error opening serial port.\n");return 1;}// set the serial port parametersdcbSerialParams.DCBlength = sizeof(dcbSerialParams);if (!GetCommState(hSerial, &dcbSerialParams)) {printf("Error getting serial port state.\n");CloseHandle(hSerial);return 1;}dcbSerialParams.BaudRate = CBR_9600;dcbSerialParams.ByteSize = 8;dcbSerialParams.StopBits = ONESTOPBIT;dcbSerialParams.Parity = NOPARITY;if (!SetCommState(hSerial, &dcbSerialParams)) {printf("Error setting serial port state.\n");CloseHandle(hSerial);return 1;}// set the timeoutstimeouts.ReadIntervalTimeout = 50;timeouts.ReadTotalTimeoutConstant = 50;timeouts.ReadTotalTimeoutMultiplier = 10;timeouts.WriteTotalTimeoutConstant = 50;timeouts.WriteTotalTimeoutMultiplier = 10;if (!SetCommTimeouts(hSerial, &timeouts)) {printf("Error setting timeouts.\n");CloseHandle(hSerial);return 1;}// send dataif (!WriteFile(hSerial, data, sizeof(data), &bytes_written, NULL)) {printf("Error writing to serial port.\n");CloseHandle(hSerial);return 1;}printf("Sent %d bytes: %s\n", bytes_written, data);// read incoming dataif (!ReadFile(hSerial, incoming_data, sizeof(incoming_data), &bytes_read, NULL)) {printf("Error reading from serial port.\n");CloseHandle(hSerial);return 1;}printf("Received %d bytes: ", bytes_read);for (i = 0; i < bytes_read; i++) {printf("%c", incoming_data[i]);}printf("\n");// close the serial portCloseHandle(hSerial);return 0;
}

2.对ChatGPT进行代码封装

main.c

#include <windows.h>
#include <stdio.h>#include "serial.h"int main()
{const char* com = "\\\\.\\COM10";char data[] = "maosql\r\nHello world!\r\n"; // data to sendwq_open_serial_port(com, CBR_115200);wq_serial_port_write(data, sizeof(data));wq_serial_port_read();wq_close_serial_port();
}
  • serial.h
#ifndef __SERIAL_H__
#define __SERIAL_H__HANDLE wq_open_serial_port(const char* com, int BaudRate);void wq_close_serial_port(void);HANDLE wq_serial_port_write(char* data, UINT32 date_len);HANDLE wq_serial_port_read(void);#endif
  • serial.c
#include <windows.h>
#include <stdio.h>HANDLE hSerial;
HANDLE comHandle = INVALID_HANDLE_VALUE;
DWORD bytes_written, bytes_read;
char incoming_data[256]; // buffer to store incoming data/** param com:       //eg:COM1,COM2 , >COM9 use \\\\.\\COMx* param BaudRate:  //Common value:CBR_9600、CBR_19200、CBR_38400、CBR_115200、CBR_230400、CBR_460800*/
HANDLE wq_open_serial_port(const char* com, int BaudRate)
{DCB dcbSerialParams = { 0 };COMMTIMEOUTS timeouts = { 0 };// open the serial porthSerial = CreateFile(com, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);if (hSerial == INVALID_HANDLE_VALUE) {printf("Error opening serial port.\n");return comHandle;}// get the serial port parametersdcbSerialParams.DCBlength = sizeof(dcbSerialParams);if (!GetCommState(hSerial, &dcbSerialParams)) {printf("Error getting serial port state.\n");CloseHandle(hSerial);return comHandle;}dcbSerialParams.BaudRate = BaudRate;dcbSerialParams.Parity = NOPARITY;dcbSerialParams.ByteSize = 8;dcbSerialParams.StopBits = ONESTOPBIT;// set the serial port parametersif (!SetCommState(hSerial, &dcbSerialParams)) {printf("Error setting serial port state.\n");CloseHandle(hSerial);return comHandle;}// set the timeoutstimeouts.ReadIntervalTimeout = 50;timeouts.ReadTotalTimeoutConstant = 50;timeouts.ReadTotalTimeoutMultiplier = 10;timeouts.WriteTotalTimeoutConstant = 50;timeouts.WriteTotalTimeoutMultiplier = 10;if (!SetCommTimeouts(hSerial, &timeouts)) {printf("Error setting timeouts.\n");CloseHandle(hSerial);return comHandle;}return 0;
}void wq_close_serial_port(void)
{// close the serial portCloseHandle(hSerial);
}HANDLE wq_serial_port_write(char* data, UINT32 date_len)
{// send dataif (!WriteFile(hSerial, data, date_len, &bytes_written, NULL)) {printf("Error writing to serial port.\n");CloseHandle(hSerial);return comHandle;}printf("Sent %d bytes: %s\n", bytes_written, data);return 0;
}HANDLE wq_serial_port_read(void)
{UINT32 i;// read incoming dataif (!ReadFile(hSerial, incoming_data, sizeof(incoming_data), &bytes_read, NULL)) {printf("Error reading from serial port.\n");CloseHandle(hSerial);return comHandle;}printf("Received %d bytes: ", bytes_read);for (i = 0; i < bytes_read; i++) {printf("%c", incoming_data[i]);}printf("\n");return 0;
}

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

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

相关文章

c#实现QQ群成员列表导出及邮件群发之模拟QQ登陆

前言 本文的重要部分&#xff1a; 1、抓包获取QQ空间或者邮箱登陆地址&#xff0c;分析参数&#xff0c;用户名&#xff0c;密码&#xff0c;验证码&#xff0c;gtk&#xff0c;随即数。 2、获取每次登陆需要的验证码 3、用户名&#xff0c;密码&#xff0c;验证码加密得到登陆…

快速导出qq群所有qq号码

打开http://qun.qq.com/member.html 登录自己的qq 登录以后的页面 选择要导出的qq群 然后按F12(打开开发者模式) 将下面的代码复制到控制台后敲回车执行即可。 function savefiles(data, name) {var urlObject = window.URL || window.webkitURL || window;var export_b…

​GPT-3好“搭档”:这种方法缓解模型退化,让输出更自然

文本生成对于许多自然语言处理应用来说都是非常重要的。 但神经语言模型的基于最大化的解码方法&#xff08;如 beam search&#xff09;往往导致退化解&#xff0c;即生成的文本是不自然的&#xff0c;并且常常包含不必要的重复。现有的方法通过采样或修改训练目标来引入随机…

技术创新,让企业拥有智能“伯乐”,实现精准识人

过去&#xff0c;“得人才者得天下&#xff0c;世有伯乐&#xff0c;然后有千里马。” 这些都是我们耳熟能详古人对于人才渴求的描写。能否及时发现人才、培养人才、发挥人才作用的关键&#xff0c;都是历代管理者或经营者关注的问题。自古发现人才并没有那么容易&#xff0c;过…

LLM in Medical Domain: 一文速览大语言模型在医学领域的应用

© 作者&#xff5c;杨锦霞 机构&#xff5c;中国人民大学 研究方向&#xff5c;多模态学习 来自&#xff1a;RUC AI Box 进NLP群—>加入NLP交流群 引言&#xff1a;近期&#xff0c;大型语言模型在各种任务上展现出优异的性能&#xff0c;展示了广阔的应用前景。然而&a…

【NLP】首个支持联网的中文 AI 问答模型,开源了!

2021 年 12 月&#xff0c;OpenAI 正式推出 WebGPT&#xff0c;该项目的横空出世&#xff0c;标志着基于网页搜索的问答新范式的诞生。 在此之后&#xff0c;New Bing 首先将网页搜索功能整合发布&#xff0c;随后 OpenAI 也发布了支持联网的插件 ChatGPT Plugins。 大模型在联…

清华ACL2023 | WebCPM:首个联网支持中文问答开源模型

来自&#xff1a;PaperWeekly 进NLP群—>加入NLP交流群 2021年12月 WebGPT 的横空出世标志了基于网页搜索的问答新范式的诞生&#xff0c;在此之后&#xff0c;New Bing 首先将网页搜索功能整合发布&#xff0c;随后 OpenAI 也发布了支持联网的插件 ChatGPT Plugins。大模型…

刚刚!马斯克开源Twitter算法,GitHub Star数已破万!

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年2月份热门报告合集 ChatGPT种子用户招募&#xff08;无限制次数直接使用&#xff09; ChatGPT调研报告&#xff08;仅供内部参考&#xff09; 文心一言、GPT3.5及GPT4…

招募:AICG内容联合创作计划 | AIGC实践

AIGC&#xff08;AI Generated Content&#xff0c;人工智能自动生成内容&#xff09;必将成为小微创业团队进行低成本内容运营的最佳实践。 你同意这个观点吗&#xff1f; 如果我们恰好想法一致&#xff0c;或许可以一起搞点事情&#xff0c;探索一下商业场景下&#xff0c;应…

【原创】实现ChatGPT中Transformer模型之输入处理

作者&#xff1a;黑夜路人 时间&#xff1a;2023年7月 Inputs Process&#xff08;输入处理层&#xff09;实现 我们看整个绿色框的整个位置&#xff0c;就是Inputs Process&#xff08;输入处理层&#xff09;。 在输入处理层&#xff0c;其实非常容易理解&#xff0c;主要就…

Visual Studio Community 2022 + Win10 编译 OpenCPN 5.9.0 记录

前言 前两天尝试用vs2017编译OpenCPN5.0.0&#xff0c;前后折腾了两三天总算编译成功了。官网给出的编译过程比较简单&#xff0c;我在实际编译过程中遇上了很多很多的问题&#xff0c;最多的就是缺少库&#xff0c;好在最后编译通过了。 后来浏览OpenCPN官网的时候发现发布了…

jmeter简单使用以及报告生成

jmeter入门 前置准备jmeter目录介绍jmeter常用组件jmeter简单食用 第一次写文章&#xff0c;主要就是一些简单的自学笔记&#xff0c;记录一下自己以后能方便看&#xff0c;大家需要的话也可自行取用&#xff0c;这些年干下来&#xff0c;我发现内容不重要&#xff0c;重要的是…

学会 IDEA 中的这个功能,就可以丢掉 Postman 了

点击关注公众号&#xff0c;Java干货及时送达&#x1f447; 转自&#xff1a;oschina 作者&#xff1a;凯京技术团队 my.oschina.net/keking 前言 接口调试是每个软件开发从业者必不可少的一项技能&#xff0c;一个项目的的完成&#xff0c;可能接口测试调试的时间比真正开发写…

分享:python+Windows自带任务计划程序,实现定时自动删微信的video文件夹

目录 0. 背景1. 使用python实现删微信的video文件夹1.1 代码1.2 打包 2. 使用python实现自动添加任务计划程序2.1 代码2.2 打包 3. 使用bat脚本方便操作3.1 手动删.bat3.2 加入定时任务.bat 0. 背景 pc微信实在太占用磁盘空间了&#xff0c;特别是其中的视频文件夹。所以有了这…

搭建本地服务器+jshtml访问mysql并显示输出

文章目录 人生苦短&#xff0c;先问chatgpt1. 用Tomcat配置本地网站2. 访问本地网页3. js访问本地mysql并显示在html中 PS: Chatgpt实在是有点强~~ 今天是悲伤的一天&#xff0c;把mysql密码忘了&#xff0c;网上搜的方法没用&#xff0c;本来以为卸载部分组件就好&#xff0c;…

3句代码,实现自动备份与版本管理

前言&#xff1a; 服务器开发程序、测试版本等越来越多&#xff0c;需要及时做好数据的版本管理和备份&#xff0c;作为21世界的青年&#xff0c;希望这些事情都是可以自动完成&#xff0c;不止做了数据备份&#xff0c;更重要的是做好了版本管理&#xff0c;让我们可以追溯我们…

【编程实践】Linux Shell 编程:使用 循环和递归 实现斐波那契数列代码

用 Linux Shell 编程语言递归实现斐波那契数列代码:循环和递归 Linux Shell 编程语言是一种强大的工具,它可以轻松地实现程序设计语言中的常见算法。 斐波那契数列 斐波那契数列是一种经典的算法,它的定义如下: 斐波那契数列(Fibonacci Sequence)是以递归的方法来定义: …

chatgpt赋能python:Python下载与运行指南-让Python脚本更容易使用

Python下载与运行指南 - 让Python脚本更容易使用 Python已经成为世界上最流行的编程语言之一。Python具有简单易用的特点&#xff0c;几乎可以开始创建任何类型的应用程序或脚本。如果你是一名新手或是一名经验丰富的开发者&#xff0c;Python都是一款优秀的编程语言。 本篇文…

人教版初中英语听力软件,人教版初中英语听力mp3

新目标英语九年级上册Tapescripts所有的翻译 east东方的、eagerness热心、eagle鹰、ear耳朵&#xff0c;听力、early早等。 词汇解析一、east 英 [iːst]   美 [iːst]    adj. 东方的adv. 向东方n. 东方&#xff1b;东部1、east的基本意思是“东&#xff0c;东方”&…

英语语音题

语音题 a i i在nd和gh前发[ai] y th 词首[θ] the、ther结尾[] ch tion ow[哦][奥] oo ar ed 清读[t] 浊元读[d] t、d后读[id] 清&#xff1a;破客服吃屎&#xff0c;戳死赐死 ea o s ou e 欸 b ure 呃 优呃 屋呃 h gh ex 后有元[igz] 后有辅[iks] c al ai wh w在wr、…