程序如下,高手帮忙看看,是通过温度传感器获取数据然后通过单片机输出到PC上面 30
单片机集成了AD转换器#defineUINT8unsignedcharUINT8temp(){UINT8temp;temp=ZSYS_ADC_GET(0);//获取温度值...
单片机集成了AD转换器
#define UINT8 unsigned char
UINT8 temp()
{
UINT8 temp;
temp=ZSYS_ADC_GET(0);//获取温度值,已经经过AD转换了
return temp;
}
main()
{
UINT8 temp1;
temp1=temp();
ZHAL_LCD_DIS_STRING(0,3,&temp1,4,0);//LCD显示
zPrintf(1,"\n%02x",temp1);//输出到PC
}
下面解释下函数的意思:
ZHAL_LCD_DIS_STRING(0,3,&temp1,4,0);//0和3是LCD的横纵向的地址,4是输出宽度,0就忽略不讲了,默认的。这个函数原型是ZHAL_LCD_DIS_STRING(x,y,*p,w,0);
zPrintf(1,"\n%02x",temp1);//1代表通过异步串口UART1输出,引号里的为输出格式
ZSYS_ADC_GET(0);//这是API中通过通道ACH0获得模数转换器的值的函数
我的问题是:
1.输出格式符是%02x呢还是%u呢,貌似我运行了,都不是我理想中的结果啊。
2.LCD显示始终是乱码。怎么回事?希望高手帮忙 展开
#define UINT8 unsigned char
UINT8 temp()
{
UINT8 temp;
temp=ZSYS_ADC_GET(0);//获取温度值,已经经过AD转换了
return temp;
}
main()
{
UINT8 temp1;
temp1=temp();
ZHAL_LCD_DIS_STRING(0,3,&temp1,4,0);//LCD显示
zPrintf(1,"\n%02x",temp1);//输出到PC
}
下面解释下函数的意思:
ZHAL_LCD_DIS_STRING(0,3,&temp1,4,0);//0和3是LCD的横纵向的地址,4是输出宽度,0就忽略不讲了,默认的。这个函数原型是ZHAL_LCD_DIS_STRING(x,y,*p,w,0);
zPrintf(1,"\n%02x",temp1);//1代表通过异步串口UART1输出,引号里的为输出格式
ZSYS_ADC_GET(0);//这是API中通过通道ACH0获得模数转换器的值的函数
我的问题是:
1.输出格式符是%02x呢还是%u呢,貌似我运行了,都不是我理想中的结果啊。
2.LCD显示始终是乱码。怎么回事?希望高手帮忙 展开
展开全部
我没有你要的答案,随便写点。
(1)函数temp()跟ZSYS_ADC_GET(0)没有什么不同,因为你只是赋了值。
所以,temp1=temp();可用temp1=ZSYS_ADC_GET(0);代替,省去一个函数。少个函数,在检查故障时就更容易。
(2)主函数没有“初始化”代码。也不知你用的是什么单片机或者什么操作系统。应考虑是否对LCD进行初始化操作。与 PC通讯是使用的什么连接?USB?串口?是否也要对通讯协议进行定义或者初始化?
(3)如果你的程序不是运行于单片机系统的操作系统上,main()函数中应该有主循环
while(1){;}
不然就会乱。
(4)也许,你再多提供点信息,网友回答就来得更快。
(1)函数temp()跟ZSYS_ADC_GET(0)没有什么不同,因为你只是赋了值。
所以,temp1=temp();可用temp1=ZSYS_ADC_GET(0);代替,省去一个函数。少个函数,在检查故障时就更容易。
(2)主函数没有“初始化”代码。也不知你用的是什么单片机或者什么操作系统。应考虑是否对LCD进行初始化操作。与 PC通讯是使用的什么连接?USB?串口?是否也要对通讯协议进行定义或者初始化?
(3)如果你的程序不是运行于单片机系统的操作系统上,main()函数中应该有主循环
while(1){;}
不然就会乱。
(4)也许,你再多提供点信息,网友回答就来得更快。
追问
恩,第一个说的对,我那个是省略一部分函数的,呵呵
初始化代码,前面都写过了,这个是在主程序中要做的一些事件函数
我用的是zigbee 的MG2455
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询