1779564238的个人空间 https://bbs.21ic.com/?2616414 [收藏] [复制] [RSS]

日志

请教关于74HC165D的奇怪问题

已有 532 次阅读2019-11-28 14:14 |个人分类:学习记录|系统分类:传感与控制

        本人刚入门不久小白一枚,最近开发一个小项目,遇到点问题很是头痛,直接步入正题吧:
情况是这样的,有个客户让我们做个主控板,来读他的一些信号,他原来的主板是c8051f320的芯片的 ,然后呢 我们这边是想用STM32来做,他的信号板也就是一些开关量信号,然后是用74HC165D并转串的,一开始我拿了一个差不多25cm的排线开发,一切很顺利 很快完成了,但是之后装配用了长点的线(估摸着1.5m吧,是2段用接头拼接的),却始终读不到信号,现在排除了线本身的质量问题和信号问题,然后就寻思这个是不是线长了,接着百度解决方法,说是在165端的PL和CLK上拉2个4.7k电阻  ,试了一下也没有效果,目前有点迷茫,不知道从哪下手,请求高手指点一番
附上信号小板电路图:


附上STM32相应引脚图

路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (1 个评论)

回复 1779564238 2019-11-28 15:12
附上读取数据部分代码
void HC165Read2Byte(void)
{
        uint8_t i;
        uint16_t dat;
       
        CLK_VALUE_SET;
        LoadDatOn;
        _nop();
        LoadDatOff;
       
       
        for(i=0;i<17;i++)
        {
                dat = dat << 1;
               
                if(DAT_VALUE)
                {
                        dat += 1;
                }
               
                CLK_VALUE_RESET;
                _nop();
                _nop();
                CLK_VALUE_SET;                               
        }
        CLK_VALUE_RESET;
        ALD_Data.W = ~dat;
}