搜索
bottom↓
回复: 3

求助,帮忙解决下啊,谢了

[复制链接]

出0入0汤圆

发表于 2008-6-24 09:26:37 | 显示全部楼层 |阅读模式
我使用的是合众达的DEC-2812V1.0的板子,接温度传感器DS18B20

(1)
#define     DQ     GpioDataRegs.GPFDAT.bit.GPIOF0
/*   产生复位脉冲初始化DS18B20  */
void TxReset(void)
{
        GpioMuxRegs.GPFMUX.bit.SPISIMOA_GPIOF0=0;   //设置为通用I/O口
        GpioMuxRegs.GPFDIR.bit.GPIOF0=1;      //1:输出  0:输入
        DQ=1;
        DELAY(40);
        DQ=0;                         //产生上升沿   
        DELAY(750);
        DQ=1;
}
当我设置GPIOF0为输入口(GpioMuxRegs.GPFDIR.bit.GPIOF0=0),为什么示波器还是会有输出了?

(2)
void RxWait(void)
{

        GpioMuxRegs.GPFDIR.bit.GPIOF0=1;        //1:输出    0:输入
        while(DQ);
        while(~DQ);          //检测到应答脉冲
        DELAY(500);
        GpioMuxRegs.GPFDIR.bit.GPIOF0=1;
        DQ=1;
}
示波器测试DQ端有高低电平跳变,可是程序到while(DQ)就不能运行下去了,
是不是DSP里面不能while(DQ)和while(~DQ)这样表示的?
大家帮忙看一下啊,谢谢!

出0入0汤圆

发表于 2008-6-25 09:09:19 | 显示全部楼层
(!) 找自己原因啦,这个功能没听谁说有问题过!

(2) DQ在RxWait()外部没变化的话,当然运行不下去!

出0入0汤圆

 楼主| 发表于 2008-6-25 09:22:01 | 显示全部楼层
先谢谢了,呵呵。
对于(2)
在示波器上能看到DQ端的高低跳变,即是说外部有变化的,可是运行不下去啊,程序没有问题??

出0入0汤圆

发表于 2008-6-25 09:33:37 | 显示全部楼层
DQ 是输出寄存器,不知是不是输入寄存器???
没用过2812,没看数据手册。印象中应该不是,有单独的输入寄存器。
也许DQ是个 只写的寄存器,读恒为0 或1。对于作为输出的IO 去读,还是自己去看数据手册说明吧!!


综上所叙,自己看数据手册!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 01:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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