这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 如何通过串口发送DS18B20数据至电脑?

共14条 1/2 1 2 跳转至

如何通过串口发送DS18B20数据至电脑?

工程师
2021-09-09 22:15:52     打赏
请问:如何通过串口发送DS18B20数据至电脑?求助,上位机通过C#接收并且处理数据


我当前MCU的主要代码如下:


/*串口初始化,比特率9600*/
void UART_Init()
{
   SM0 = 0;        SM1 = 1;//串口工作方式1,8位UART波特率可变
        TR1 = 1;//启动定时器1
        TMOD |= 0x20;//定时器1,工作模式2 8位自动重装
        TH1 = 0xfd;
        TL1 = 0xfd;//设置比特率9600
}

void main()
{                 

        uint i;
                uchar L, M;
        UART_Init(); //串口初始化
        TI = 1;//使用printf()puts()前都应软件置位TI = 1;

        ds_init();//初始化DS18B20
        write_byte(0xcc);//发送跳跃ROM指令
        write_byte(0x44);//发送温度转换指令
        Delay_Ms(1000);
          while(1)
        {         
                ds_init();//初始化DS18B20
        write_byte(0xcc);//发送跳跃ROM指令
        write_byte(0x44);//发送温度转换指令
        ds_init();//初始化DS18B20
        write_byte(0xcc);//发送跳跃ROM指令
        write_byte(0xbe);//读取DS18B20暂存器值
               L = read_byte();
                M = read_byte();
                i = M;
                x[0]=M;
                x[1]=L;
                i <<= 8;
                i |= L;                                       
                i = i * 0.625  + 0.5;

                Display(i);         //数码管显像


    //此处代码怎么可以设置定时发送
                  SBUF=M;
                while(TI==0);
                        TI=0;
                SBUF=L;
                while(TI==0);
                        TI=0;               
}  
}





关键词: DS18B20     串口     上位机    

专家
2021-09-10 00:03:06     打赏
2楼

感谢楼主的分享,很实用了。


专家
2021-09-10 08:20:01     打赏
3楼

这个帖子不错


高工
2021-09-10 08:51:00     打赏
4楼

看看


专家
2021-09-10 08:51:42     打赏
5楼

学习


专家
2021-10-08 09:01:20     打赏
6楼

不错,值得学习,谢谢分享


高工
2021-10-08 09:06:00     打赏
7楼

不错,值得学习,谢谢分享


高工
2021-10-08 09:14:53     打赏
8楼

ok


院士
2021-10-08 09:22:06     打赏
9楼

谢谢分享


专家
2021-10-08 09:24:38     打赏
10楼

 //此处代码怎么可以设置定时发送
                  SBUF=M;
                while(TI==0);
                        TI=0;
                SBUF=L;
                while(TI==0);
                        TI=0;               


1、如果能读到数据,那么需要另外一个串口上,先直接发送看看。

数据读取到一个数组里,然后循环发送下看看。


实际上,需要开一个中断, 然后监控上面数组是否有数据,有就发送。


共14条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]