标题: 各位路过大神帮看一下,关于C语言变量指针的问题 [打印本页]

作者: liulianww    时间: 2021-1-20 18:57
标题: 各位路过大神帮看一下,关于C语言变量指针的问题
a=2;
SendString(a);

目的是想把一个变量通过串口发送到电脑上,

编译的时候提示非法指针转换
main.c(88): error C214: illegal pointer conversion


那么,a的变量该如何传送出去?

作者: pcf2000    时间: 2021-1-21 09:19
SendString原函数是如何定义的?!
作者: IdeaMing    时间: 2021-1-21 09:24
你应该使用senddata(a);sendstring要传入指针,a你定义为a[],也可以
作者: munuc_w    时间: 2021-1-21 09:29
senddata()是如何定义的?
作者: munuc_w    时间: 2021-1-21 09:36
senddata()如果是这样定义的senddata(u8 *x)的话,这样调用senddata(&a)。
作者: wufa1986    时间: 2021-1-21 09:43
应该是&a吧
作者: 郑汉松    时间: 2021-1-21 09:49
SendString函数数是发送字符串的,这个函数的参数应该是一个字符串数组的地址,你发送单个应该用sendchar这个函数
作者: 名字不是重点    时间: 2021-1-21 09:52
从字面上看,SendString当是发送字符串,是一组数据,你一个a在这边的确不符,可能要SendByte()或 是Sendchar(),你把SendString()这个函数原型发上来看看。
作者: 1714461639    时间: 2021-1-21 10:10
&a取地址

作者: 人人学会单片机    时间: 2021-1-21 10:37
用我这个代码,没有死等!CPU效率高!!!
单片机串口1打印程序 可以打印3个十六位的变量 波特率9600 www.51hei.com/bbs/dpj-201660-1.html
作者: liulianww    时间: 2021-1-22 20:18
void send1()
{
        SendByte('\t');
        SendString("value:");               
        SendString(&a);    //如果用这种方法串口收到空数据value:   
//        senddata(a);   //如果用这种方法会提示main.c(67): error C267: 'senddata': requires ANSI-style prototype
                 SendByte('\n');


作者: liulianww    时间: 2021-1-22 20:20
void SendByte(unsigned char sbyte)
这是原型
作者: liulianww    时间: 2021-1-22 20:21
void SendString(unsigned char *pstr)
{
     while(*pstr!='\0')                         //字符串是否发完
     {
         SendByte(*pstr);                        //发送字符串数据
         pstr++;                                         //指向下一个字符
     }
作者: rundstedt    时间: 2021-1-22 20:29
liulianww 发表于 2021-1-22 20:20
void SendByte(unsigned char sbyte)
这是原型

那么你在楼主位代码中a也是unsigned char的话,就不应该出错啊!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1