数码之家

 找回密码
 立即注册

微信登录

微信扫一扫,快速登录

搜索
查看: 426|回复: 14

[C51] 帮我看下这段语句错误问题

[复制链接]
发表于 7 天前 | 显示全部楼层 |阅读模式
50M币
本帖最后由 yyou58 于 2022-6-21 19:22 编辑

UART_Send_Byte('t0.txt=');  请问添加字符串的代码是多少

main()
{
        int16 ans;

        uart_init();
        start_temp_sensor();
        while (1)
        {
                delay_ms (5000); // 延时1秒

                ans=read_temp();
        
                if (ans < 0)
                {
                        
        
                }

                UART_Send_Byte('t0.txt=');
                UART_Send_Dat(ans);
               
           UART_Send_Byte(0xFF);
      UART_Send_Byte(0xFF);
      UART_Send_Byte(0xFF);
                UART_Send_END();   //发送结束符
                }

}

发表于 7 天前 | 显示全部楼层
百度一篇,看看有无帮助
https://www.docin.com/p-320119592.html
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
DS18B20的核心功能是直接温度-数字测量。其温度转换可由用户自定义为9、10、11、12位精度分别为0.5℃、0.25℃、0.125℃、0.0625℃分辨率。值得注意的是,上电默认为12位转换精度。DS18B20上电后工作在低功耗闲置状态下。主设备必须向DS18B20发送温度转换命令[44h]才能开始温度转换。温度转换后,温度转换的值将会保存在暂存存储器的温度寄存器中,并且DS18B20将会恢复到闲置状态。

读取数据后,需要再次启动转换。
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
字符串要用双引号。
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
找本C语言的书看看,很多问题就不是问题了,看起来花了没用的时间实际更省时间。
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
新手学单片机建议用支持JTAG在线调试的单片机,在线一步步调试能让你更快找出问题。

不明白为什么都抱着51学。
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
看看C语言基础吧,你这问题就好像在问:1+1怎样等于2
回复

使用道具 举报

 楼主| 发表于 7 天前 | 显示全部楼层
本帖最后由 yyou58 于 2022-6-21 19:34 编辑

//发送一串字符串
void Uart_Send_String(unsigned char *p)
{
         while(*p)
        {
                 UART_Send_Byte(*p++);        
        }
}


main()
{
        int16 ans;

        uart_init();
        start_temp_sensor();
        while (1)
        {
                delay_ms (5000); // 延时1秒

                ans=read_temp();
        
                if (ans < 0)
                {
                        
        
                }

                UART_Send_String('t0.txt=');
                UART_Send_Dat(ans);
               
           UART_Send_Byte(0xFF);
      UART_Send_Byte(0xFF);
      UART_Send_Byte(0xFF);
                UART_Send_END();   //发送结束符
                }

}



太简单了 添加进去就行了
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
while 条件判断结果恒为真,if 无执行内容
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
你前面写的程序,
UART_Send_Byte( dat ) ;       // 发送一个字节 这个只能发送一个unsigned char  的数据.0-255 的数据
  UART_Send_Str( "===文本串====via=0.25==")          //发送文本串 这个才能发送一串数据,字符串,
字符和真实的数据是不一样的, 字符串"0"它的数据=48
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
UART_Send_Str( "t0.txt=")  //发送字符 t0.txt=
UART_Send_Str( "\"")  // 发送字符 " (一个双引号)
UART_Send_Byte( dat/100%10 +48 ) ;//发送一个数据的百位 变成字符0-9发送
UART_Send_Byte( dat/10%10 +48 ) ;//发送一个数据的十位 变成字符0-9发送
UART_Send_Str( "\.")  // 发送字符.(一个点)
UART_Send_Byte( dat%10 +48 ) ;//发送一个数据的个位 变成字符0-9发送
UART_Send_Str( "\"")  // 发送字符 " (一个双引号)
//======== 最终结果就得到  t0.txt="00.0"   这样一个字符串 ,用电脑助手可以观察
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
yyou58 发表于 2022-6-21 19:33
//发送一串字符串
void Uart_Send_String(unsigned char *p)
{

难者不会,会者不难嘛。
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
哈哈,陶精驰的屏。
回复

使用道具 举报

 楼主| 发表于 6 天前 来自手机浏览器 | 显示全部楼层
flishmen 发表于 2022-6-22 17:17
哈哈,陶精驰的屏。

嘿嘿 你也玩过
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
UART_Send_String("t0.txt=\"XXXXXXXXXX\"");
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|数码之家

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2022-6-28 23:37 , Processed in 0.078001 second(s), 7 queries , Redis On.

Powered by Discuz!

© 2006-2021, MyDigit.cn

快速回复 返回顶部 返回列表