精华内容
下载资源
问答
  • 单片机串口助手

    2013-03-18 13:55:47
    各种单片机常用的串口助手,串口通信调试专用
  • 所以用python实现了一个简单的单片机串口助手,可以将串口助手发往单片机的字符回传给串口助手。也可以 将配合单片机程序对单片机进行控制。 python实现的串口助手代码如下: import time; #需要调用延时函数 ...

        项目中遇到需要用电脑通过串口来控制单片机IO口,查询了一些资料,可以使用python来实现简单的串口通信,

    所以用python实现了一个简单的单片机串口助手,可以将串口助手发往单片机的字符回传给串口助手。也可以

    将配合单片机程序对单片机进行控制。

      python实现的串口助手代码如下:

    import time; #需要调用延时函数
    import serial #需要调用串口库
    import binascii #需要将传送的字符进行转换
    
    
    if __name__ == '__main__':
        ser = serial.Serial(); #生成串口
        ser.baudrate = 4800  #设置串口波特率
        ser.port = 'COM4'    #设置串口号
        ser.timeout = 0.1    #设置串口通信超时时间
        ser.close()         #先关闭串口,以免串口被占用
        ser.open()          #打开串口
        print(ser.is_open)  #打印串口状态
        strSerial = ''      #初始化串口传输字符串
        if(ser.is_open):    
            while(strSerial != '0'):        #判断输入是否为'0',为'0'则退出循环    
                strSerial = raw_input('Input:') #输入传输字符串
                strHex = binascii.b2a_hex(strSerial)  #将传输字符串转换为16进制
                strhex = strHex.decode("hex")  #以十六进制解码,这两行必须有,不然会回传乱码
                ser.write(strhex)    #将传输字符串写入串口
                time.sleep(1)        #延时1s,时间可以设置,最好设置大点,以免传输字符过多,传输
                                     #时间过长,回传失败
                n = ser.inWaiting(); #求取串口缓存中回传的字符个数
                print 'n=',n         #打印字符个数
                if n:
                    data = '';
                    data = ser.read(1000); #读取缓存中1000个字符,值越大越好,如果该值小于传输字 
                                           #符总长度,多余的字符会被抛弃
                    print 'get data from serial port:',data; #打印回传的字符
        ser.close()     #程序结束时关闭串口,以免串口被占用
        print  not ser.is_open

    单片机下位机程序如下:

    #include "reg52.h"
    
    typedef unsigned char u8;
    typedef unsigned int u16;
    
    
    u8 receiveData;
    
    void UsartInit()//初始化串口
    {
     TMOD = 0X20;
     TH1 = 0XF3;
     TL1 = 0XF3;
     PCON  = 0X80;
     TR1 = 1;
     SCON = 0X50;
     ES = 1;
     EA = 1;
     
    }
    
    
    
    
    void main()
    {
     UsartInit();
    
     while(1)
     {
     };
    
    }
    
    
    
    void uSART() interrupt 4   //用中断处理串口通信
    {
      receiveData = SBUF; //将单片机接收缓存中的字符存入receiveData
    
      RI = 0;
      SBUF= receiveData;  //将receiveData中的字符存入单片机发送缓存
      while(!TI);     //等待回传完成
      TI = 0;
    
    }

    程序运行结果如下:

    对单片机下位机处理函数加以扩展,根据接收到的不同字符做出不同的动作,就可以通过串口助手对单片机

    加以控制,以下程序可以通过串口控制单片机的IO口,将单片机的IO口与发光二极管相连,就可以控制二极管亮灭

    #include "reg52.h"
    
    typedef unsigned char u8;
    typedef unsigned int u16;
    
    sbit SUNROOF_OPEN   = P2^0;
    sbit SUNROOF_CLOSE  = P2^1;
    sbit SUNSHADE_OPEN  = P2^2;
    sbit SUNSHADE_CLOSE = P2^3;
    
    u8 receiveData;
    
    void UsartInit()
    {
     TMOD = 0X20;
     TH1 = 0XF3;
     TL1 = 0XF3;
     PCON  = 0X80;
     TR1 = 1;
     SCON = 0X50;
     ES = 1;
     EA = 1;
     
    }
    
    
    
    
    void main()
    {
     UsartInit();
     P2 = 0; //P2口先置0,发光二极管全灭
    
     while(1)
     {
       switch(receiveData)//根据接收到的值控制对应的IO口输出高低电平
       {
       case 'A'
        SUNROOF_OPEN = 1;
    	break;
       case 'B':
        SUNROOF_OPEN = 0;
    	break;
       case 'C':
        SUNROOF_CLOSE = 1;
    	break;
       case 'D':
        SUNROOF_CLOSE = 0;
    	break;
       case 'E':
        SUNSHADE_OPEN = 1;
    	break;
       case 'F':
        SUNSHADE_OPEN = 0;
    	break;
       case 'G':
        SUNSHADE_CLOSE = 1;
    	break;
       case 'H':
        SUNSHADE_CLOSE = 0;
    	break;
       default:
        break;
        
         
    
       }
     
     
    
     };
    }
    
    
    
    void uSART() interrupt 4
    {
      receiveData = SBUF;
    
      RI = 0;
      SBUF= receiveData;
      while(!TI);
      TI = 0;
    
    }

    程序运行结果如下:

    串口助手发送命令:

    单片机做出响应:

    串口再次发送命令:

    单片机再次做出响应:

    可以对单片机和串口助手程序加以扩展,实现更复杂的功能

    展开全文
  • 51单片机串口助手

    2013-04-25 18:47:12
    51单片机串口功能中用于单片机与计算机通信
  • [QT]简单51单片机串口助手

    千次阅读 2016-09-29 10:59:24
    1、哈哈,周末无聊,就想起了单片机,哈哈,于是就想做个软件和PC之间的通讯,就想到了单片机助手,那不就是个简单的通讯嘛!嘿嘿!于是忙活了一下午,找资料,编程。2、用的是STC90C516RD+的,晶振11.0592Mhz,波特...
    1、哈哈,周末无聊,就想起了单片机,哈哈,于是就想做个软件和PC之间的通讯,就想到了单片机助手,那不就是个简单的通讯嘛!嘿嘿!于是忙活了一下午,找资料,编程。
    2、用的是STC90C516RD+的,晶振11.0592Mhz,波特率9600,QT写的,用的是qextserialport-1.2win-alpha
    3、软件运行截图:
    [QT]简单51单片机串口助手 - jl_ran - jl_ran的blog
      qextserialport-1.2win-alpha下载地址: http://pan.baidu.com/s/1slKibTF
    软件就不提供下载了!嘿嘿!
    要是下载地址失效,请发邮件到: jl_ran@163.com 或者自己百度一下!

    展开全文
  • 单片机串口调试助手

    2012-01-04 20:26:59
    单片机 串口调试助手
  • 单片机串口调试助手
  • 很实用的单片机串口调试助手,我就是用这个软件进行串口调试
  • 单片机串口调试助手~~(*^__^*) 嘻嘻……很好的哦 好东西 我低调上传~~
  • 单片机 串口调试助手

    2010-08-03 14:57:44
    单片机串口通信进行调试测试 对单片机串口通信进行调试测试 对单片机串口通信进行调试测试 对单片机串口通信进行调试测试等等
  • 单片机串口调试助手V2.3,我多次使用,都没问题,很好用
  • 单片机串口波特率计算助手
  • 本软件可以对单片机串口进行调试,是单片机开发必备工具之一!
  • 调试一个简单的串口协议,当单片机收到串口发送的数据,解析数据无误后向串口回发一字节数据0x01,且只是发送一次,但串口助手不停得接收到0x0![图片说明]...
  • 单片机串口

    2017-07-03 16:25:48
    串口助手 单片机
  • 用于单片机与pc机间实现串口通信,可以实时在上位机上显示单片机相应端口的输出。
  • 要求:pc机向单片机发送321,单片机向电脑发送get321!,pc机向单片机发送123,单片机向pc机发送当前的秒数(自打开到接收到的时间值)#include#include "Config.h"uchar i = 0;uchar Count = 0,second=0,minute;//...

    要求:pc机向单片机发送321,单片机向电脑发送get321!,pc机向单片机发送123,单片机向pc机发送当前的秒数(自打开到接收到的时间值)

    #include

    #include "Config.h"

    uchar i = 0;

    uchar Count = 0,second=0,minute;//用来计数、定时

    uchar flag = 0;

    uchar string[3], j = 0;//用来储存每次接受的字符

    void Send_Byte(uchar data)

    {

    while(!(IFG1&UTXIFG0));

    U0TXBUF=data;

    }

    //发送字符串

    void Print_Str(uchar *s)

    {

    while(*s != '\0')

    {

    Send_Byte(*s++);

    }

    }

    //端口的初始化

    void UART_Init()

    {

    U0CTL|=SWRST;               //复位SWRST,当SWRST=1时开始进行设置串口

    U0CTL|=CHAR;                //8位数据模式

    U0TCTL|=SSEL1;              //SMCLK为串口时钟

    U0BR1=baud_h;               //BRCLK=8MHZ,Baud=BRCLK/N

    U0BR0=baud_l;               //N=UBR+(UxMCTL)/8

    U0MCTL=0x00;                //微调寄存器为0,波特率9600bps

    ME1|=UTXE0;                 //UART1发送使能

    ME1|=URXE0;                 //UART1接收使能

    U0CTL&=~SWRST;

    IE1|=URXIE0;                //接收中断使能位

    P3SEL|= BIT4;               //设置IO口为普通I/O模式

    P3DIR|= BIT4;               //设置IO口方向为输出

    P3SEL|= BIT5;

    }

    void TIMERA_Init(void)                                   //连续计数模式,计数到0XFFFF产生中断

    {

    TACTL |= TASSEL1 + TACLR + ID0 + ID1 + MC0 + TAIE;     //SMCLK做时钟源,8分频,增加计数模式,开中断

    TACCR0 = 9999;

    }

    #pragma vector = TIMERA1_VECTOR

    __interrupt void Timer_A(void)

    {

    switch(TAIV)                                  //需要判断中断的类型

    {

    case 2:break;

    case 4:break;

    case 10:Count++;break;                         //设置标志位Flag

    }

    if(Count==100)                                 //100次为1秒

    {

    second++;

    Count=0;

    if(second==60)

    {

    minute++;

    second=0;

    }

    }

    }

    #pragma vector=UART0RX_VECTOR

    __interrupt void UART0_RX_ISR(void)

    {

    uchar data=0;

    data=U0RXBUF;

    string[j++] = data;

    if(j >= 3)

    {

    j = 0;

    }

    if((string[0]=='3')&&(string[1]=='2')&&(string[2]=='1'))

    {

    Send_Byte('g');

    Send_Byte('e');

    Send_Byte('t');

    Send_Byte('3');

    Send_Byte('2');

    Send_Byte('1');

    Send_Byte('!');

    Send_Byte(' ');

    string[0]='\0';

    string[1]='\0';

    string[2]='\0';

    }

    if((string[0]=='1')&&(string[1]=='2')&&(string[2]=='3'))

    {

    Send_Byte(minute/10+0x30);

    Send_Byte(minute+0x30);

    Send_Byte(':');

    Send_Byte(second/10+0x30);

    Send_Byte(second+0x30);

    Send_Byte(' ');

    string[0]=0;

    string[1]=0;

    string[2]=0;

    }

    }

    void main(void)

    {

    WDT_Init();                                       //看门狗设置

    Clock_Init();                                     //系统时钟设置

    UART_Init();

    TIMERA_Init();

    _EINT();                                          //开中断

    while(1)

    {

    ;

    }

    }

    //使用串口调试助手的时候注意应该要关掉以16进制发送跟显示,发送的均是以ASCLL的,所以发送数字的时候应+0x30,发送字符的时候应  加’‘,

    //单片机接受pc机发送的指令是单个接受的,一个字符一个字符接受的,所以说需要设置一个数组来储存所接受的字符,否则每次接受中断,之前接受的字符就没有了,

    单片机发送字符也是单个字符发送的,但是也可以发送字符串,

    展开全文
  • 串口助手 用于调试单片机
  • 很好的学习开发工具,适合新手和学生已经工程师!记住,自学很重要!!!!!我的资源里面还有很多电子、单片机方面的资料、工具、软件....
  • 串口调试,16进制或ASIIC码发送,可单独添加0x0D(回车)、0x0A(换行),自动搜索串口号,定时发送,最多25组定时循环发送,可显示HEX或者文本,支持中文显示。可保存窗口内容到TXT文件。自动保存设置及信息。可选...
  • 今天调试了一下Android的串口程序,能够实现与PC端的串口收发,数据解析均没有问题,同时编写了单片机串口收发程序,与PC端通信没有问题; 现把单片机的9针串口与Android的9针串口串口线连接,无法通信,单片机...

    今天调试了一下Android的串口程序,能够实现与PC端的串口收发,数据解析均没有问题,同时编写了单片机的串口收发程序,与PC端通信没有问题;

    现把单片机的9针串口与Android的9针串口用串口线连接,无法通信,单片机的信号显示一直有数据发送,Android端收不到数据,

    麻烦高手给些解决建议。

    展开全文
  • 串口助手显示从51单片机上DS18B20读到的温度。
  • 51单片机串口的问题

    2020-08-28 20:13:53
    想问一下:单片机串口在接收的时候是怎么接收的?如上位机一次发送一个字符串11223344,通过串口助手下发给单片机。
  • 51单片机串口通信

    2018-12-28 23:03:37
    这是一个关于51单片机串口通信的小例子,用串口助手发送"ab01"led流水,发送“ab02”单片机led另一种效果,发送“ab03”蜂鸣器响,,如果不切换发送的指令,一直处于上一个发送的指令效果上,希望对刚开始学习的有所...
  • 程序自动接收电脑端发送过来的字符,同时将结果发送回电脑端
  • 串口调试助手, 用于 单片机 串口 程序 调试
  • 单片机串口通信

    2014-04-13 13:07:22
    PC机 到 单片机之间的通信 可以传输数据,使用串口助手完成
  • 单片机多功能调试助手分两个版本,分别是:含CH375 DLL版本、无DLL版本,它们的区别主要体现在是否对CH37X USB提供支持。为了减少对服务器的负担,现在单片机多功能调试助手只提供无DLL的版本,即不对CH372/CH375 USB...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,595
精华内容 2,238
关键字:

单片机串口助手