打印

指针问题求助

[复制链接]
1725|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Metalor|  楼主 | 2011-11-20 15:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uint8_t Lynn[]    = {"Lynn"};

void WriteString(uint8_t add,uint8_t *pData)
{
   WriteCom(0x80+add);
   while(*pData != '\0')
   {
       WriteData(0x30 + *pData);
       pData++;
   }
}

int main(void)
{
   ......
   WriteString(1,Lynn);
}

想用指针来传递数组的数据,老是不对,请帮忙分析分析~~

相关帖子

沙发
Metalor|  楼主 | 2011-11-20 19:03 | 只看该作者
Up

使用特权

评论回复
板凳
lishutong| | 2011-11-20 19:47 | 只看该作者
楼主,怎么个不对法了?

使用特权

评论回复
地板
Metalor|  楼主 | 2011-11-20 20:14 | 只看该作者
送数据去显示,单独发就是正确的
发字符串就显示乱码

使用特权

评论回复
5
yuyi21ic| | 2011-11-20 20:26 | 只看该作者
程序没问题啊,估计是显示程序或者其他的问题吧啊、

使用特权

评论回复
6
Metalor|  楼主 | 2011-11-20 20:55 | 只看该作者
哈哈~
找出原因了。。。
郁闷。。。。
疏忽了。

我的程序用到了一个1602来显示,1602的字库是要另外重新定义的,和电脑上的码不一样,当要显示A时不能发一个'A‘过去,而应该发自己定义的那个值。
真是郁闷的问题,不知道大家有没有看懂。
现在数组改为:uint8_t Metalor[] = {M,e,t,a,l,o,r};就OK,(之前是uint8_t Lynn[]    = {L,y,n,n};)
不管怎么说,长经验了。

使用特权

评论回复
7
Metalor|  楼主 | 2011-11-20 20:57 | 只看该作者
楼上发错了。。。

现在数组改为:uint8_t Lynn[]    = {L,y,n,n};就OK,(之前是uint8_t Lynn[]    = {”Lynn“};)

使用特权

评论回复
8
linfuchi| | 2011-11-20 21:08 | 只看该作者
嘿嘿

使用特权

评论回复
9
Cortex-M0| | 2011-11-20 23:20 | 只看该作者
:L

使用特权

评论回复
10
sytu_chyq| | 2011-11-21 08:26 | 只看该作者
WriteData(0x30 + *pData);
这个不用加0x30吧

uint8_t Lynn[]    = {L,y,n,n};
这个是什么东东

使用特权

评论回复
11
caijie| | 2011-11-21 10:13 | 只看该作者
uint8_t Lynn[]    = {L,y,n,n};
uint8_t Lynn[]    = "Lynn"; 这样也行的. 不行你试试, 不管你信不信,反正我信了.

使用特权

评论回复
12
hotpower| | 2011-11-21 11:17 | 只看该作者
&Lynn[0]

使用特权

评论回复
13
Metalor|  楼主 | 2011-11-21 12:01 | 只看该作者
&Lynn[0]
hotpower 发表于 2011-11-21 11:17


这样也行

使用特权

评论回复
14
Metalor|  楼主 | 2011-11-21 12:02 | 只看该作者
uint8_t Lynn[]    = {L,y,n,n};
uint8_t Lynn[]    = "Lynn"; 这样也行的. 不行你试试, 不管你信不信,反正我信了.
caijie 发表于 2011-11-21 10:13


我明白你的意思,但你没明白我的意思。

使用特权

评论回复
15
Metalor|  楼主 | 2011-11-21 12:03 | 只看该作者
WriteData(0x30 + *pData);
这个不用加0x30吧

uint8_t Lynn[]    = {L,y,n,n};
这个是什么东东
sytu_chyq 发表于 2011-11-21 08:26


这个事老的驱动,需要改改,确实不需要0x30
关于这个东东:uint8_t Lynn[]    = {L,y,n,n};
数组里面每个字符都是我定义的数据,他其实就是一个数。

使用特权

评论回复
16
Metalor|  楼主 | 2011-11-21 12:10 | 只看该作者
很多人没看明白,有点乱
其实这个问题最终的原因还是因为我犯2,搞出一些不该出现的诡异事情

再说一遍:
比如我定义0x11为A,当我要在LCD显示字符A时发个0x11过去就行了,此时0x11就是A,A就是0x11
然而还有个东西叫‘A’,加了引号的A,大家都明白‘A’代表的数据是0x41
我的问题就是我把我自己定义的A和系统中的‘A’搞混了。。。
不知大家有没有明白

说来说去还是引用以前写的驱动的问题,自己回去改改就可以通用了,不用搞出两个A。。

使用特权

评论回复
17
原野之狼| | 2011-11-21 13:50 | 只看该作者
呵呵 搞明白了就好

使用特权

评论回复
18
hotpower| | 2011-11-21 15:33 | 只看该作者
数组是不会加结尾符的,字符串是自动加入的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

224

帖子

1

粉丝