打印
[ARM7]

ARM7串口通信时写的程序出了点问题,不能通信,求指导

[复制链接]
1777|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
你好陌生人|  楼主 | 2013-9-17 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define                ADS1605_Data                0x0003FFFC        //ADS1605数据
uint32  Rcv_ADData ;                        // 接收的AD转换的二进制数据
uint32   Sed_ADData ;                        // 发送的AD十进制数据
uint8   ADData[]   ;

//向串口发送字节数据
void SendByte(char dat)
{
        U0THR = dat;
        while((U0LSR& 0X40) == 0);
;
}

//发送字符串
void  SendStr(char *Str)
{   
  while((*Str)!='\0')
  {
    SendByte(*Str);
    Str++;
  }
}

//下面是主程序里面的一段

Rcv_ADData = IO0PIN & ADS1605_Data;   //从gpio口读出数据
Sed_ADData = (Rcv_ADData >> 2)/4;        //将数据右移两位后转换成十进制数据                       
printf(ADData,"%c",Sed_ADData);       //使用标准输入输出函数将数据发送
SendStr(ADData) ;                        串口发送
上面是程序的部分,现在就是最后两句行不通,用的是ads开发环境,不知道能不能用标准输入输出函数,我包含了#include  "stdio.h"头文件,Sed_ADData是十进制数据,但是最后怎么用SendStr(char *Str)发送字符串函数发送,搞不明白,最后两句在IAR编译环境是可以实现的。

相关帖子

沙发
你好陌生人|  楼主 | 2013-9-17 11:52 | 只看该作者
难道每次二楼都是我吗   ?求指导啊

使用特权

评论回复
板凳
杨爱林林| | 2013-9-18 08:22 | 只看该作者
干嘛要用printf  
你这函数写的没问题啊

使用特权

评论回复
地板
你好陌生人|  楼主 | 2013-9-18 15:38 | 只看该作者
杨爱林林 发表于 2013-9-18 08:22
干嘛要用printf  
你这函数写的没问题啊

我现在主要不知道怎么用SendStr函数把Sed_ADData数据发送出去   以前见过的别人用标准输入输出这样写就可以,我就借鉴了一下,SendStr函数是发送的字符串,但是Sed_ADData是十进制数,不知道能不能直接发送啊

使用特权

评论回复
5
你好陌生人|  楼主 | 2013-9-18 15:51 | 只看该作者
杨爱林林 发表于 2013-9-18 08:22
干嘛要用printf  
你这函数写的没问题啊

SendStr的入口参数是一个指针,Sed_ADData是一个变量,怎么样才能发送啊   刚才试了一下   不行的

使用特权

评论回复
6
杨爱林林| | 2013-9-18 16:32 | 只看该作者
当然不行啦  
SendStr 是发送字符串
你要想发送Sed_ADData,就把Sed_ADData 放到一个数组里面,比如 Send_Buf[]
发送Send_Buf 就好了

使用特权

评论回复
7
杨爱林林| | 2013-9-18 16:40 | 只看该作者
你的发送字符串 应该加个长度 比较好
void SendStr(char *Str,char byte_num)
{
char num = byte_num;
char index = 0;

memcpy(Send_Buf,Str,num);
for(index=0;index<num;index++)
{
  SendByte(Send_Buf[index]);
}
}

使用特权

评论回复
8
你好陌生人|  楼主 | 2013-9-18 16:48 | 只看该作者
杨爱林林 发表于 2013-9-18 16:32
当然不行啦  
SendStr 是发送字符串
你要想发送Sed_ADData,就把Sed_ADData 放到一个数组里面,比如 Send_B ...

怎么放进去啊

使用特权

评论回复
9
杨爱林林| | 2013-9-18 16:52 | 只看该作者
额 给数组赋值 你还不会吗
赶紧补c基础:lol

使用特权

评论回复
10
你好陌生人|  楼主 | 2013-9-18 16:59 | 只看该作者
杨爱林林 发表于 2013-9-18 16:40
你的发送字符串 应该加个长度 比较好
void SendStr(char *Str,char byte_num)
{


Warning : C2207W: inventing 'extern int memcpy();'

这个是编译后的警告,加的长度要多长时不确定的,这个程序就是通过GPIO口将16位AD的转换结果通过串口发送出去,AD转换后的数据长度是不确定的啊,
现在就是想把Sed_ADData放到数组里面,这样就可以用SendStr发送了

使用特权

评论回复
11
你好陌生人|  楼主 | 2013-9-18 17:00 | 只看该作者
杨爱林林 发表于 2013-9-18 16:52
额 给数组赋值 你还不会吗
赶紧补c基础

学的不好啊 :'(  求推荐一本书

使用特权

评论回复
12
杨爱林林| | 2013-9-19 19:15 | 只看该作者
一般发送函数都是 void SendStr(char *Str,char byte_num) 这种格式的
方便调用

使用特权

评论回复
13
杨爱林林| | 2013-9-19 19:16 | 只看该作者
多写写小程序 然后再调试通过就好啦  顶住

使用特权

评论回复
14
你好陌生人|  楼主 | 2013-9-23 11:10 | 只看该作者
杨爱林林 发表于 2013-9-19 19:15
一般发送函数都是 void SendStr(char *Str,char byte_num) 这种格式的
方便调用

恩  主要是我的数据位数是不确定的   我也不知道发送多少:P,现在在做毕业设计   好多不懂  

使用特权

评论回复
15
你好陌生人|  楼主 | 2013-9-23 11:10 | 只看该作者
杨爱林林 发表于 2013-9-19 19:16
多写写小程序 然后再调试通过就好啦  顶住

恩   顶的住

使用特权

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

本版积分规则

20

主题

152

帖子

1

粉丝