C8051单片机串口向PC串口助手发送数据时无法停止

调试一个简单的串口协议,当单片机收到串口发送的数据,解析数据无误后向串口回发一字节数据0x01,且只是发送一次,但串口助手不停得接收到0x0图片说明1,不知道怎么解决

0

2个回答

程序就是这样子的吧,接收完就发送,没有停止

0
qq_30672393
qq_30672393 额 你说的是对的 是我写错了 当TI0 = 1进入中断后,向SUBF0写数据发送后,TI0又被硬件置1了 ,所以才会不停得发送,感谢
3 年多之前 回复
qq_30672393
qq_30672393 不是啊 ,单片机接收完一组数据才向串口发送一次0行
3 年多之前 回复

在串口中断中,发送采用的中断模式,这样你发送玩一个自己发送中断就会相应,进入到你的发送中断中,然后,继续发送,建议发送数据不要采用中断模式。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
51单片机给串口调试助手发送随机数,指定命令停止或继续(下位机)
一、功能介绍 1.1连接串口调试助手,对其发送随机数据,串口助手发送0x00指令,单片机停止发送数据,发送0x01指令,单片机继续发送数据。 二、开发步骤 2.1 初始化定时器,中断 TMOD=0x20; //定时器T1方式2 TH1=0xf4; //设置串行口波特率为2400 bps TL1=0xf4; TR1=1; //启动波特率...
PC通过串口助手如何给单片机发送小数,单片机接收后如何处理?
两种思路,供参考。1. 原始字节按原始字节数据发送,这也是我个人比较倾向的方式。首先,位、字节和字节流本身没有任何意义,如果按约定的方式去解析,才能有具体的含义。用什么约定方式呢?使用符合IEEE 754的浮点数标准,每个浮点数为4个字节,按标准解析就可以了。其实这个标准,包括STM32在内的很多微控制器,都是支持的,内部的表达方式都是一致的,而且效率很快。技巧就是定义好一个联合体,这一步很关键:...
C8051串口调试 C8051
小白,先备份一下~~~ C8051F320串口调试,实现功能: 电脑发送数据,单片机接收,并返回,可根据led等检测状态。 遇到问题: 1.主函数中flag需在末尾清0,否则if后面的语句会发送两遍 2.发送字符必须先关串口中断,不然后续数据会无法发送等各种奇怪问题 3.时钟源配置,定时器,端口输入输出配置,再三检查,接收出现乱码很可能是波特率配置等问题 4.****重要*****串口发送...
单片机与PC机通信 单片机和pc相互发送数据
在“串口调试助手”中的数据发送区中输入要发送的信息,点击“手动发送按钮”,则会发现Proteus中的仿真系统的数码管显示出所发送的信息。 当按下Proteus中的仿真电路中的按键K1键时,串口调试助手的接收区则显示PC机接收到的信息。
PC机串口调试助手与单片机通信字符问题
在利用PC机的串口调试助手与单片机通信时,单片机与PC机是以ASCII码的形式通信的,比如发送1,其实发送的是字符1,如果在接收区以十六进制显示的话,是31(1的ASCII码)。具体如下: 1. 十六进制发送与十六进制显示都为选中,发送与接收的都是字符的形式; 2.如果以十六进制发送或者十六进制显示的话,就是以十六进制的ASCII码的形式发送或显示。 如果在串口调试助手中发送十六进制
串口助手发送数据到单片机并显示在液晶上
实验平台:51开发板 实验人:阿辉 实验现象:串口助手发送一串数据,实现LED状态翻转 数据: eb 01 30 00 00 39 ed eb 02 30 00 00 39 ed 实验代码如下: #include "reg52.h" #include "lcd1602.h" //typedef unsigned char uchar; //typedef unsigned int uint;...
串口通讯上位机(PC)接收数据--下位机(单片机)发送数据
CVI串口通讯上位机(PC)接收数据--下位机(单片机)发送数据。
单片机自动向PC机发送数据的方法
单片机通过串口向PC机发送数据一般是通过串口中断服务程序来实现,也就是说一般写在中断函数里。例如: #include /*主程序*/void main (void){ SCON = 0x50; /* SCON: 模式 1, 8-bit
stc不断用串口向外发送数据,如何下载程序
先关闭单片机电源,连接好下载线,单击单片机程序下载烧录软件下载按钮,开始下载,然后及时打开单片机电源,就可以解决单片机串口占用,无法下载程序的问题。
(C51学习五)单片机与PC通过串口通信
1.开发步骤 2.串口模块 3.SBUF是什么 4.串口相应寄存器 5.给定波特率求定时值 6.代码实现 1.开发步骤 1.设置串口中断寄存器 2.求出给定波特率对应的T1定时器初始值(因为传统的C51是用T1定时器产生波特率的) 3.写程序 2.串口模块 什么是串口?串口就是COM口,串口是串行发送数据的,是一位位地发送数据位,常见的是9针串口。但在一般的C
Android串口与PC端串口助手通信没有问题,但是与单片机串口无法通信
今天调试了一下Android的串口程序,能够实现与PC端的串口收发,数据解析均没有问题,同时编写了单片机的串口收发程序,与PC端通信没有问题; 现把单片机的9针串口与Android的9针串口用串口线连接,无法通信,单片机的信号显示一直有数据发送,Android端收不到数据, 麻烦高手给些解决建议。
[C8051F320]串口UART0全双工调试过…
问题描述:由于应用需要,将C8051F320的UART0作为数据通信接口,与上位机之间进行通信并实现简单的控制功能。程序大概是:由串口定时发送数据到上位机,这个定时时间用定时器控制,可由上位机通过串口发送指定命令切换串口发送定时时间。C8051F320串口发送采用查询方式,发送一段数据之前先关串口中断,发送完毕再打开串口中断,C8051F320串口接收采用中断方式,对接收的各种命令进行分支处理。
基于c51单片机的数据采集串口发送数据到pc的C程序
基于c51单片机的数据采集串口发送数据到pc的C程序
51单片机串口发送汉字显示乱码问题
前一段时间做蓝牙通信,单片机串口发送汉字总显示乱码,代码如下: //发送一个字节 void SendByte(unsigned char dat) { SBUF = dat; while(!TI); TI = 0; } //发送一个字符串 void SendStr(unsigned char *s) { while(*s!='\0') { SendByte(*s);
51单片机按键通过串口发送字符串
本程序将51单片机的按键与串口发送很好的联系在一起,众所周知,如果处理不好的话可能会一次按键后,单片机不停的重复发送,且程序中应用了很好的去抖动部分,本程序在郭天祥实验板上验证过,可放心使用。
串口向PC及发送字符程序
用串口向PC机发送字符,并在串口助手上显示
单片机与串口助手通信时数据格式转化问题
一、概述在单片机与串口助手通信时存在很多问题,毕竟一个是通过硬件编程控制的,一个是通过软件编程实现的,两者之间并没有很大的兼容性。最基本的,硬件与软件中很多数据类型是不同的,这就给软件与硬件之间的通信造成了很大的困难。1.无线通信:举个我在做项目中遇到的问题,我们的项目有一部分需要实现手机端软件对硬件实现远程控制,而远程控制就必定涉到软件与硬件之间的通信。通信网络用wifi,用ESP8266-12...
单片机和PC机串口通讯试验
2006-05-04 14:16:54  单片机和PC机串口通讯试验 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转
STC51单片机串口发送程序
#include    #define uchar unsigned char    unsigned char rtemp,sflag; unsigned char code Buffer[] = "Welcome To The MCU World."; //所要发送的数据 unsigned char *p;   unsigned char TestBuff[3];
USB做串口--单片机向PC端传数据
USB数据线一共有四个针,其中两个针是连接数据的作用,另外两个针是充电的电源线包括接地的。 1、红线的作用:电源正极(接线上的标识为:+5V或VCC) 2、白线的作用:负电压数据线(标识为:Data-或USB Port -) 3、绿线的作用:正电压数据线(标识为:Data+或USB Port +) 4、黑线的作用:接地(标识为:GND) usb可以直接和单片机的串口usart连接,向PC...
CC2530通过串口向PC发送字符串
CC2430包括2个串行通信接口 USART0 与 USART1,每个串口包括两个模式:UART(异步)模式、SPI(同步)模式,本节仅涉及UART模式)。
STM32USART串口单片机发送数据
非常详细的介绍了如何使用STM32的串口USART发送数据,还附带非常完整的程序。
MSP430按键控制串口发送数据
#include //MSP430G2553  - 使用USCI_A0,Up Mode, DCO SMCLK // //  介绍: 该程序利用USCI_A0来与计算机通信 通过接在P1.3口的按键来实现按一次发送一个数据 //  波特率9600,数据格式8N1 // //  ACLK = 32768, SMCLK = 32768  MCLK =  DCO-16M // //   
51单片机串口通信(电脑发送数字到单片机数码管显示)
chr转hex #include<reg51.h> #include<intrins.h> //--定义使用的IO--// #define GPIO_DIG P0 //使用138译码器 sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; typedef unsigned int u16; //¶ÔÊý¾ÝÀàÐͽøÐÐÉùÃ...
两种方法实现STM32F103向串口一直发送数据(程序源码,已测试)
串口是STM32最为重要的资源,在平时的硬件调试和软件调试中都是不可或缺的工具,最近在测试一块板子的通信功能是否正常,我打算用板子A的串口USART1一直向串口发送数据,用板子B的串口1接收数据,并将接收到的数据经过处理后显示在LCD液晶上。所以就写了下面的串口发送程序,发送的是数组函数。     Main.c #include "led.h" #include "delay.h" #in
关于单片机串口通信波特率问题
今天学习单片机串口通信,编写了单片机与PC机的通信程序,即PC机向单片机发送信息,单片机再把信息返回给PC机,并显示出来。在调试的时候总是没有结果,检查了半天,发现错误,而且很容易被忽略的错误。用串口通信计算器在确定波特率的时候,一定要注意误差,如果过大的话(我第一次设定波特率9600,误差是6%多),通信也是有问题的,一定要把误差尽量缩小,1%以内。第二次设定波特率2400,误差1%以内。 下
下位机单片机c语言发送数据到串口,上位机pc机java语言获取端口数据
总是有些人在质疑,说pc机用java无法直接进行串口通信。这篇文章通过完成的实例代码,完美的宣告了一些!!!!
关于单片机串口发送时初始发送的数据第一个总是00的问题解决
在调试STM8的串口时候,串口IO初始化,串口配置,发送数据调试~~ 连接好串口线后,发现初始化后发送的第一个数据总是00,后面的数据才是正常的数据。 折腾了大半天,终于发现了原因了,那就是初始化串口后不能马上发送数据,要经过一定时间延迟。 问题代码如下: CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//运行在16Mhz Init_GPI
串口通信(串口助手发送指令控制单片机执行相应操作)
串口通信 (1)刚下载完程序,流水灯 (2)通过串口助手发送“ab01”,数码管显示温度,显示完当前温度后,将温度打印到串口助手上 (3)串口助手发送“ab02”,,蜂鸣器响 (4)执行完后都会回复最初的流水灯
单片机与PC机多机通讯 串口通信
下面是我写的一个实现多个下位机(单片机)与一个上位机(PC机)的一主多从串口通讯程序,用的STC89C52RC,定时器2做串口通信波特率发生器。      实现功能是这样的:      用调试助手向单片机发送一个数据包。      通讯协议是这样的:       数据包的格式如下所示(共10个字节组成): 0x2A,0xEB,0x8D,地址码,指令码,数据长度码,数据码,数据码,校验码,
LCD1602显示单片机与PC机间串口收发数据
因为要在linux内核中加入一个新模块的驱动,所以先用单片机来看看该模块是如何工作的,同时也回顾了以前所学的C51的知识,都快忘得差不多了,同时也是记录学习的旅程。     1602与串口都是新模块在单片机测试中会用到的知识点,所以先拿来看看效果。     源代码编译链接环境keil2.0 先看看lcd1602与串口的电路图 lcd1602的控制线(RS/RW/EN)分别于
单片机串口发送数据帧
很少看到有资料写如何以中断的方式发送一帧数据,如果以等待的发送数据帧,对高速运行的单片机来说是很浪费时间的,下面就介绍一种使用中断方式发送数据帧,操作平台采用51 mcu
STM32串口发送数据详解
串口的中断方式: /** * @brief Enables or disables the specified USART interrupts. * @param USARTx: where x can be 1 or 2 to select the USART peripheral. * @param USART_IT: specifies the USART inte
51单片机串口通信并用数码管显示接收数据
通过数码管将51单片机从电脑上接收来的数据进行转换并显示出来!
51单片机与PC串口通信
本人最近写了一个单片机与电脑的串口通信程序,程序调试成功,希望对大家有所帮助。本程序的功能有:1、通过DS18B20采集温度并通过1602显示出来。2、单片机与电脑进行通信,上位机给单片机一个读温度指令,单片机把温度值以一定的形式发送给电脑。电脑和单片机的协议如表1所示。 单片机反馈温度值给电脑的形式如表2所示。 表1  电脑读取温度值   帧头 帧长度
基于proteus的51单片机仿真实例六十二、串口发送和接收字符串实例
本系列文章讲述了基于proteus仿真的51单片机学习,内容全面,不仅讲解电路原理,还讲解了单片机c语言,实例丰富,内容全面。
单片机串口收发数据
1单个字符的发送与接收 在中断函数中,如果接收到数据则RI由硬件置1,这时候把SBUF缓冲区的数据赋值给Buffer,并将RI置0,等待下次接收。同时,将接收到的数据再放入缓冲区,发送给PC机。当发送完毕的时候TI会被硬件置1,这时候需要将TI置0,以待下次发送。 #include #define uint unsigned int #define uchar unsigned
一个串口通信发送的程序,51汇编的
求一个串口通信发送的程序,用汇编的。在单片机串行口工作方式1,波特率为9600。发送端发送1,2,3....30三是个数;只编写发送程序;晶振为11.0592MHz。悬赏分:5 - 解决时间:2009-12-22 19:11 ;-----------------------------------------------------------------最佳答案:程序如下:    MOV S
STM32_USART_向PC机发送数据
STM32_USART_向PC机发送数据
C8051F020实现ADC采样芯片外的模拟电压,通过LCD显示,并通过串口发送到PC机
C8051F020实现ADC采样芯片外的模拟电压,通过LCD显示,并通过串口发送到PC机 /*************************************************************** 功能:实现ADC采样芯片外的模拟电压,通过LCD显示,并通过串口(J13)发送到PC机      注:试验时把ADC0的工作基准VREF0(J7_5和J7_6或J7_2和J7
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 python串口教程 python写串口读写教程