PC与单片机串行通信的上位机设计(温度监控系统) 10C

温度数据要存入sql数据库中,人机界面实现温度的实时显示和查询功能,有没有大神可以提供一份类似的代码供我学习学习,本人电气小白,正在做毕设

1个回答

要实现什么样的,用什么写的上位机i

athrunf
athrunf V++,MFC
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c#上位机与单片机通信,上位机接收不到单片机返回的数据

我遇到的问题是: 1上位机给单片机发送数据,单片机能接收到,但是单片机返回的数据上位机收不到 2我不用单片机,直接把数据线上的TX、RX短接,再用上位机发送数据,这时 上位机显示区就能显示上位机发送的数据; 3我用串口调试助手调试单片机程序,调试助手能正常接收单片机返回的数据; 以上3个问题,很是矛盾,不知道哪里出问题了,请高手帮助一下!

PC怎么实现和单片机的通信

PC怎么实现和51单片机的通信,用wifi,zigbee或者其他的方式实现操作,怎么才可以呢?

如何实现单片机与PC之间的通信

想用opencv编写识别程序,与atmega128通讯,来控制机械臂抓取物体 用一根USB串口转接线连接单片机和笔记本电脑 怎么实现通讯(单独编程?还是可以安装什么软件?) 求大神们帮帮忙~万分感谢

PC与51串行通信仿真无法成功

完成PC和单片机的串行双工通信仿真,单片机的P1口接一共阴极数码管,阴极接地。 要求PC机使用串口助手发送“0~9”数字到单片机,并显示在单片机接的数码管上,单片机发送一串字符串能显示在PC的串口助手上,采用查询方式。波特率为1200。 下面是我编的,keil编译成功![图片说明](https://img-ask.csdn.net/upload/202006/05/1591347797_391210.png) ![图片说明](https://img-ask.csdn.net/upload/202006/05/1591347824_995623.png) ![图片说明](https://img-ask.csdn.net/upload/202006/05/1591347748_121898.png) 程序是想通过外部中断int0按键进行发送,串行中断发送/接受,但是怎么操作数码管都不变,串口助手也不现实接受的数字,求大神帮忙,本人大3ke'she ![图片说明](https://img-ask.csdn.net/upload/202006/05/1591348100_774534.png) ![图片说明](https://img-ask.csdn.net/upload/202006/05/1591348062_168705.png)

51单片机的接收上位机指令,并控制步进电机

跪求大神看一下程序解答一下。我的程序是单片机接收上位机发来的数字,后对应不同的数字指令通过两个电机做出上下左右的模拟转动。程序语法都没问题,没有错误和警告,也能正常接收上位机的数据,但是就是不执行命令。能看到上位机发送命令后单片机接收灯闪烁一下,但是单片机接的步进电机不动。程序单独拿出去无限循环都能执行。 ``` #include<reg52.h> #define uchar unsigned char #define uint unsigned int #define Motor1Data P0 //步进电机控制接口定义 #define Motor2Data P2 //步进电机控制接口定义 void init(void); //串口初始化 unsigned char a; uchar phasecw[4] ={0x08,0x04,0x02,0x01};//正转 电机导通相序 D-C-B-A uchar phaseccw[4]={0x01,0x02,0x04,0x08};//反转 电机导通相序 A-B-C-D //串口初始化,设定传输波特率为9600 void init(void) { TMOD = 0x20; //定时器1,模式2工作模式 SCON = 0x50; //串口工作模式1 TH1 = 0xfa; //9600 TL1 = 0xfa; ES = 1; EA = 1; TR1 = 1; } //jie shou void rece(void) { q1: if(RI==0) goto q1; a=SBUF; RI=0; return; } //ms延时函数 void Delay_xms(uint x) { uint i,j; for(i=0;i<x;i++) for(j=0;j<112;j++); } //X顺时针转动 void Motor1CW(void) { uchar i; for(i=0;i<4;i++) { Motor1Data=phasecw[i]; Delay_xms(15);//转速调节 } } //X逆时针转动 void Motor1CCW(void) { uchar i; for(i=0;i<4;i++) { Motor1Data=phaseccw[i]; Delay_xms(15);//转速调节 } } //Y顺时针转动 void Motor2CW(void) { uchar i; for(i=0;i<4;i++) { Motor2Data=phasecw[i]; Delay_xms(15);//转速调节 } } //Y逆时针转动 void Motor2CCW(void) { uchar i; for(i=0;i<4;i++) { Motor2Data=phaseccw[i]; Delay_xms(15);//转速调节 } } //停止转动 void MotorStop(void) { Motor1Data=0x00; Motor2Data=0x00; } //主函数 void main(void) { uint i; init(); q2: rece(); Delay_xms(50);//等待系统稳定 switch(a) { case 1: for(i=0;i<100;i++) { Motor2CW(); //Y顺时针转动 } MotorStop(); //停止转动 Delay_xms(500); case 2: for(i=0;i<100;i++) { Motor2CCW();//Y逆时针转动 } MotorStop(); //停止转动 Delay_xms(500); case 3: for(i=0;i<100;i++) { Motor1CCW();//X逆时针转动 } MotorStop(); //停止转动 Delay_xms(500); case 4: for(i=0;i<100;i++) { Motor1CW();//X顺时针转动 } MotorStop(); //停止转动 Delay_xms(500); }goto q2; } ```

手机蓝牙与单片机的通信如何实现?

手机是安卓系统的,蓝牙模块采用hc-06,单片机用msp430f149.具体要求是手机发数据能通过蓝牙模块传给单片机然后做出相应的反应(如控制LED的亮灭等)。

上位机给单片机发送数据。

比如上位机面板输入的是5ms,但是可能是15ns或者25s,那么我该怎么样处理数据发送给下面的单片机呢?我现在用的是MFC里面的mscoom控件,我能直接发送字符串下去么?不然的话,每个数据都要有单独的命令,那不是写不完。

CC2530与单片机的通信

zigbee CC2530 已经实现串口透传,我想从52单片机处获得数据(串口程序已经写好,PC机也能正常收到),然后zigbee通过UART0 (协议栈下)接收数据,分析一下后,通过无线发送出去,基站接收后发到PC机(已经做好),现在单片机的RX,TX与zigbeee的RX,TX怎么对应连接才能收到数据呀!谢谢啦!

上位机串口与stm32连接,如何编写上位机代码

想要实现在pc上用串口传递信息给stm32板子,不想用串口调试助手,想直接在dev c++或者vc,vs上运行程序,然后 直接把想要传递的字符串串口传递给板子。希望大神可以帮忙指导,不胜感激,如果能很快解决的话悬赏增加,学生党,求大神指导。也可以发邮箱a4507408789@163.com

单片机双机串口通信流水灯

跪求大佬帮我弄下,51单片机双机串口通信流水灯(两个按键,16个流水灯)的程序和原理图。(。・ω・)

上位机向单片机发送字符串

上位机向单片机发送一串字符串,存入一个数组缓冲区RX1_Buffer[COM_RX1_Lenth]中,接下来单片机提取数组缓冲区中的一部分字符串,将该字符串转化为整形数据,接着将整形数据转化为十六进制数通过串口发送给上位机,单片机连续向上位机发送数据,上位机第一次能正确的接收到上位机发送给单片机的数据,过后上位机收到的数据就是错误的,不知道是什么原因,附部分程序代码如下: void UART1_int (void) interrupt UART1_VECTOR { if(RI) { RI = 0; if(COM1.B_RX_OK == 0) { if(COM1.RX_Cnt >= COM_RX1_Lenth) COM1.RX_Cnt = 0; RX1_Buffer[COM1.RX_Cnt++] = SBUF; COM1.RX_TimeOut = TimeOutSet1; } } if(TI) { TI = 0; if(COM1.TX_read != COM1.TX_write) { SBUF = TX1_Buffer[COM1.TX_read]; if(++COM1.TX_read >= COM_TX1_Lenth) COM1.TX_read = 0; } else COM1.B_TX_busy = 0; } } void TX1_write2buff(u8 dat) //写入发送缓冲,指针+1 { TX1_Buffer[COM1.TX_write] = dat; //装发送缓冲 if(++COM1.TX_write >= COM_TX1_Lenth) COM1.TX_write = 0; if(COM1.B_TX_busy == 0) //空闲 { COM1.B_TX_busy = 1; //标志忙 TI = 1; //触发发送中断 } } void deal_uart(void) { if(RX1_Buffer[0]== 'R') { for(i=3;i<5;i++) Y_arr[i-3] = RX1_Buffer[i]; t_year = strtod(Y_arr,NULL); TAB_T[5] = DecToHex(t_year); for(i=6;i<8;i++) M_arr[i-6] = RX1_Buffer[i]; t_month = strtod(M_arr,NULL); TAB_T[4] = DecToHex(t_month); for(i=9;i<11;i++) D_arr[i-9] = RX1_Buffer[i]; t_day = strtod(D_arr,NULL); TAB_T[3] = DecToHex(t_day); for(i=12;i<14;i++) S_arr[i-12] = RX1_Buffer[i]; t_hour = strtod(S_arr,NULL); TAB_T[2] = DecToHex(t_hour); COM1.RX_Cnt = 0; } } void main(void) { while (1) { deal_uart(); for(i=0;i<) TX1_write2buff(TAB_T[i]); } } 求原因?

hc05与单片机的通信问题求大佬解

实现了手机蓝牙和hc05连接电脑的串口通讯 但是用到手机蓝牙和hc05与单片机的串口通信时就失败了 调试过程发现 传输数据也没用问题 请大佬找一下有什么毛病(我的单片机是学习板)注:P1有led灯作为通电判断 led一直没有bian'hua #include<reg52.h> #define uchar unsigned char sbit qianquyou1=P1^0; sbit qianquyou2=P1^1; sbit qianquzuo1=P1^2; sbit qianquzuo2=P1^3; sbit houquzuo1=P1^4; sbit houquzuo2=P1^5; sbit houquyou1=P1^6; sbit houquyou2=P1^7; char sbuf; void go(); void down(); void left(); void right(); void stop(); void delay(int xms) {int i,j; for(i=xms;i>0;i--) for(j=112;j>0;j--); } void chuankou() {SCON=0X50; //????????????1,8λ???????????? TMOD=0X20; //???ü????????????2 PCON=0X00; //?????????? TH1=0XFd; //???????????????9600@11.0592MHz TL1=0XFd; TR1=1; //???????? ES = 1; //???????ж? EA = 1; } void main() { void chuankou(); while(1) { delay(1); switch(sbuf) { case 'g':go();break; case 'd':down();break; case 'l':left();break; case 'r':right();break; case 's':stop();break } //?????? } } void chuanduan()interrupt 4 { sbuf=SBUF; RI=0; } //???? void go() {P1=0x00; } void down(){P1=0x00;} void left(){P1=0x06;} void right(){P1=0x05;} void stop(){P1=0x04;} ``` ```

怎样通过上位机读取DS18B20温度传感器传过来的温度值

我目前仅具备以下三个条件: 1、一个DS18B20温度传感器(四线,485传输方式) 2、一个USB转485的转换器 3、一台联网的笔记本 我已经达到的效果: 将三者相连,并且使用串口调试助手进行调试,给温度传感器发送获取温度的报文,已经能够获取到包含温度值的报文:例如,发送00 03 00 00 00 02 C5 DA 返回报文00 03 04 01 08 01 81 AB 3D ,返回报文中的01 08 这两个字节对应的十进制就是264,所以温度值是26.4°C 我期望达到的目标: 怎样不使用这个串口调试助手,而是直接通过上位机中的一个程序直观的发送请求并获取到这个温度值?

FX2N系列PLC通过编程口如何与上位机实现串口通信

新人,最近在写一个MFC的控制台,实现与PLC串口通信,以前写的是实现与avr单片机的通信。我按照三菱特有的通信格式编写,不知为啥一直无法实现,哪位前辈有这方面的经验吗?诚心求指点。 比如: 1.上位机发请求讯号(05H)给PLC,上位机只要负责把它发到串口缓冲区就可以吗? 2.在上位机收到PLC返回的确认信号(ACK)后,发后面的多字符帧命令码(02 45 31 30 34 30 30 34 30 32 37 42 30 30 03 41 43)这一串数据是可以一起一次性发送给PLC还是得一个一个单独发?也就是先发开始标识02H,再发操作命令.....发结束标志03H,发校验码? 3. 5 2 45 31 30......这些数据应该定义为什么类型呢?通信协议要求是16进制的ASCII形式,可以定义为unsigned char类型吗? 我用的是VC++ 谢谢~

java与单片机通信问题

我用java写了一个控制单片机的界面,想在电脑上通过点击这个界面上的控件,来控制单片机。比如:我点击“蜂鸣器”,那么单片机上的蜂鸣器就叫。 现在的问题是:不能解决java怎么利用串口和单片机进行通信。求大虾指点指点。谢谢啦

关于arduino单片机串口通信的问题

我在做一个PC与UNO交互的小程序,大概就是PC发送数据到UNO,通过单片机处理后再返送PC,其中用到了串口通讯。 我的loop环节一开始是这样的 while(Serial.read()!='k'){} 直到接收到'k'才继续执行,PC端对应一个发送字符k的操作 每次刚点烧录,程序能正常运行。 把USB拔了再插上,就一直卡在这里了。。。。 重点就是,刚烧录之后可以正常运行,重新插电就GG PC端用的是windowsAPI,用CreatFile等等实现的对串口的操作 求指点。。。 void setup() { pinMode(8, OUTPUT); Serial.begin(9600); while(Serial.read()>=0){} } void loop() { while(Serial.read()!='k'){} 这是程序的开始部分

vc++编软件与单片机通信的问题

点击通信校验后有时会弹出成功,但是有时会没反应,这是为什么?程序有错误吗? void CTestDlg::OnOnCommMscomm1() //小电话 { // int inCount; VARIANT input; BYTE rxdata[2048]; long len,k; COleSafeArray safearray; switch(myComm.GetCommEvent()) { case 2: input=myComm.GetInput(); safearray=input; len=safearray.GetOneDimSize(); for (k=0;k<len;k++) { safearray.GetElement(&k,rxdata+k); } if ((rxdata[0]==07) && (rxdata[1]+rxdata[2]==255)) { iStatus=2; AfxMessageBox("通讯校验成功!"); m_start.EnableWindow(TRUE); break; } /* else if ((rxdata[0]==05) && (rxdata[1]+rxdata[2]==255)) { iStatus=2; AfxMessageBox("电磁铁成功!"); break; }*/ break; } VARIANT variant_inp; COleSafeArray safearray_inp; CString strtemp; if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符 { ////////根据通信协议加入处理代码 HVSTATUS status = STATUS_OK; /* * 启动数字摄像机采集图像到内存 */ BYTE *ppBuf[1]; ppBuf[0] = m_pRawBuffer; status = HVStartSnap(m_hhv, ppBuf,1); HVTriggerShot(m_hhv); // 外部触发采集, 高电平有效High. // SetTimer(1,1000,NULL); // 设置定时器,定时时间为6000ms. HV_VERIFY(status); if (HV_SUCCESS(status)) { m_bStart = TRUE; } } } // 通信校验按钮 void CTestDlg::OnButton2() { CByteArray Array; Array.RemoveAll(); Array.SetSize(1); Array.SetAt(0,17);//0x11 myComm.SetOutput(COleVariant(Array)); iStatus=1; } void CTestDlg::OnButOpen() { // TODO: Add your control notification handler code here HVSTATUS status = STATUS_OK; /* * 初始化数字摄像机采集图像到内存的控制, * 指定回调函数SnapThreadCallback和用户参数m_hWnd */ status = HVOpenSnap(m_hhv, SnapThreadCallback, m_hWnd); HV_VERIFY(status); if (HV_SUCCESS(status)) { m_bOpen = TRUE; //标志已经打开Snap环境 } } void CTestDlg::OnButStart() //在线检测按钮 { // TODO: Add your control notification handler code here HVSTATUS status = STATUS_OK; /* * 启动数字摄像机采集图像到内存 */ BYTE *ppBuf[1]; ppBuf[0] = m_pRawBuffer; status = HVStartSnap(m_hhv, ppBuf,1); HVTriggerShot(m_hhv); // SetTimer(1,1000,NULL); // 设置定时器,定时时间为6000ms. HV_VERIFY(status); if (HV_SUCCESS(status)) { m_bStart = TRUE; } } void CTestDlg::OnButStop() //关闭相机按钮 { // TODO: Add your control notification handler code here HVSTATUS status =STATUS_OK; // 停止采集图像到内存,可以再次调用HVStartSnapEx启动数字摄像机采集 status = HVStopSnap(m_hhv); HV_VERIFY(status); if (HV_SUCCESS(status)) { m_bStart = FALSE; } }

试编写一串行通信的数据发送程序

试编写一串行通信的数据发送程序,发送片内RAM的20H~2FH单元的16字节数据,串行接口方式设定为方式2,采用偶校验方式。设晶振频率为6MHz。

求助:单片机采集到不定频率脉冲信号的 高低电平时间并通过串口发送至上位机,怎么实现波形的恢复

求助:单片机采集到不定频率脉冲信号的 高低电平时间并通过串口发送至上位机,怎么实现波形的恢复?请讲一下具体的实现方法。

程序员的兼职技能课

程序员的兼职技能课

为linux系统设计一个简单的二级文件系统

实验目的: 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 实验要求: 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条)

CCNA+HCNA+wireshark抓包综合网工技能提升套餐

本套餐包含思科路由交换CCNA,部分CCNP核心,华为HCNA以及wireshark抓包等类容,旨在培养具有综合能力的网络工程师。

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

成年人用得到的6款资源网站!各个都是宝藏,绝对让你大饱眼福!

不管是学习还是工作,我们都需要一些资源帮助我们有效地解决实际问题。 很多人找资源只知道上百度,但是你们知道吗,有的资源是百度也搜索不出来的,那么今天小编就给大家介绍几款好用的资源网站,大家赶紧收入囊中吧! 1.网盘007 https://wangpan007.com/ 一款全能的资源搜索网站!只需要输入关键字,就能获得你想要的视频、音乐、压缩包等各种资源,网上...

矿车轴载荷计算方法的比较及选用

针对矿车轴的弯曲损坏,分析了固定式矿车车轴的受力,并对力叠加法以及当量负荷法2种计算方法进行了分析和比较,认为应采用当量负荷法进行车轴的设计计算。

Python数据清洗实战入门

Python数据清洗实战入门

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

Polar编码matlab程序

matlab实现的Polar codes源程序

2019全国大学生数学建模竞赛C题原版优秀论文

2019全国大学生数学建模竞赛C题原版优秀论文,PDF原版论文,不是图片合成的,是可编辑的文字版。共三篇。 C044.pdf C137.pdf C308.pdf

Linux常用命令大全(非常全!!!)

Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 d...

Linux下聊天室实现(基于C)

在linux下的基于TCP/IP,采用socket通信的聊天室,实现进入聊天室,进行多人群聊,指定人进行私聊,群主管理员功能,颗进行禁言,提出群聊等操作。个人账号可修改昵称或者修改密码,还可进行找回密

一个较完整的Qt用户登录界面设计

一个较完整的Qt用户登录界面,稍微移植可用,用sqlite数据库存储用户名和密码,具有增加和删除用户的功能,开发环境为ubuntu16.04+Qt5.6.1,win7下程序也编译可用。贡献出来,共同学

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

【C语言】贪吃蛇游戏代码(Visual C++6.0实现)

本游戏代码参考《C语言项目开发全程实录(第二版)》第六章。代码已在Visual C++6.0环境下编译测试通过,可在VC++6.0编译器中导入工程编译运行查看效果,或者也可以直接运行Release或D

Android小项目——新闻APP(源码)

Android小项目——新闻APP(源码),一个很简单的可以练手的Android Demo Ps:下载之前可以先看一下这篇文章——https://blog.csdn.net/qq_34149526/a

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

Android音视频开发全套

Android平台音视频开发全套,涉及:FFmpeg软解码解码、Mediacodec硬解码编码、Openssl音频播放、OpenGL ES视频渲染、RTMP推流等核心重要知识点。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

2019 Python开发者日-培训

2019 Python开发者日-培训

2019 AI开发者大会

2019 AI开发者大会

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

因为看了这些书,我大二就拿了华为Offer

四年了,四年,你知道大学这四年我怎么过的么?

Python可以这样学(第四季:数据分析与科学计算可视化)

Python可以这样学(第四季:数据分析与科学计算可视化)

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

C++语言基础视频教程

C++语言基础视频教程

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问