智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3667|回复: 5
打印 上一主题 下一主题

求助为什么用AD采集数据通过SCI发送到电脑上失败

[复制链接]

3

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
397
威望
283
贡献
56
兑换币
2
注册时间
2010-10-6
在线时间
29 小时
跳转到指定楼层
1#
发表于 2010-10-24 19:10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

void PLL_init(void)
{
    PLLCTL_PLLON=0;
    CLKSEL_PLLSEL=0;
    SYNR=3;
    REFDV=1;
    PLLCTL_PLLON=1;
    while((CRGFLG&0X08)==0X08);
    CLKSEL_PLLSEL=1;
}
void ATD0_init(void)
{
   // ATD0CTL0=0x0f;                    //16位环路
    ATD0CTL1=0X00;                      //8bit精度
    ATD0CTL2=0X20;                      //取消快速清除 禁止触发中断
    ATD0CTL3=0X08;                      //单通道转换 左对齐 非先进先出 冻结模式下转换当前
    ATD0CTL4=0X00;                      //AD模块速度16MHZ采样时间为4
    ATD0CTL5=0X20;                      //扫描模式 单通道 0通道开始
}
void SCI0_init(void)
{
    SCI0BDH=0X00;
    SCI0BDL=208;                         //波特率9600
    SCI0CR1=0X04;
    SCI0CR2=0x2c;
}
void main(void)
{
  
    PLL_init();
    ATD0_init();
    SCI0_init();
    while(1)
    {      
        while(!ATD0STAT0_SCF);
        ATD0STAT0_SCF=1;
        while(!SCI0SR1_TDRE);
        SCI0DRL=ATD0DR0;
        
    }
}

穿到电脑上显示都为0不知道原因,请教大家

3

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
397
威望
283
贡献
56
兑换币
2
注册时间
2010-10-6
在线时间
29 小时
2#
 楼主| 发表于 2010-10-24 20:55:25 | 只看该作者
明白了,最后一句
SCI0DRL=(ATD0DR0>>8);就好
回复 支持 反对

使用道具 举报

0

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
威望
194
贡献
31
兑换币
0
注册时间
2012-2-1
在线时间
17 小时
毕业学校
北京工业大学
3#
发表于 2012-3-15 11:28:37 | 只看该作者
harry1874 发表于 2010-10-24 20:55
明白了,最后一句
SCI0DRL=(ATD0DR0>>8);就好

sci能同时传两个数据吗?

回复 支持 反对

使用道具 举报

15

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
威望
436
贡献
1080
兑换币
30
注册时间
2012-3-3
在线时间
46 小时
4#
发表于 2012-3-15 18:50:53 | 只看该作者
小狐狸 发表于 2012-3-15 11:28
sci能同时传两个数据吗?

不可以
回复 支持 反对

使用道具 举报

15

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
威望
436
贡献
1080
兑换币
30
注册时间
2012-3-3
在线时间
46 小时
5#
发表于 2012-3-15 18:51:52 | 只看该作者
你应该注意一下左对齐还是右对齐的方式存储数据,这样的话,你的“SCI0DRL=(ATD0DR0>>8);”就可以不用了
回复 支持 反对

使用道具 举报

0

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
威望
194
贡献
31
兑换币
0
注册时间
2012-2-1
在线时间
17 小时
毕业学校
北京工业大学
6#
发表于 2012-3-17 10:02:32 | 只看该作者
夏天C的微笑 发表于 2012-3-15 18:51
你应该注意一下左对齐还是右对齐的方式存储数据,这样的话,你的“SCI0DRL=(ATD0DR0>>8);”就可以不用了

那用串口示波器,怎么有人能有两条线,三条线的~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-7-2 00:39 , Processed in 0.072847 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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