新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > stm32使用三片74HC595級聯程序代碼

        stm32使用三片74HC595級聯程序代碼

        作者: 時間:2016-11-24 來源:網絡 收藏
        /************************************************************************

        Function: Read_74HC595
        Description: 讀取n片74HC595的輸入數據
        Calls: HC595_delay;GPIO_ResetBits;GPIO_SetBits;
        Data Accessed: 無
        Data Updated: 無
        Input:
        HC595x:用戶使用的595端口,類型定義在74HC595.h中
        ChipNum: 用戶使用的595端口上連接的芯片個數
        Output:
        DataBuf: 輸出數據存放緩沖區
        Return: 無
        Others: 此模塊為Stm32單片機中使用,調試時在72M系統時鐘下
        *************************************************************************/

        本文引用地址:http://www.104case.com/article/201611/320918.htm

        void Write_74HC595(HC595 HC595x,unsigned char ChipNum,unsigned char *DataBuf)
        {
        unsigned char i = 0;
        unsigned char DataBufTmp = 0;

        GPIO_ResetBits(HC595x.Lck.Port, HC595x.Lck.Pin); //設置LCK為低電平,上升沿數據鎖存

        for(; ChipNum>0; ChipNum--)
        {
        DataBufTmp = *DataBuf;
        for(i=0; i<8; i++)
        {
        GPIO_ResetBits(HC595x.Clk.Port, HC595x.Clk.Pin); //時鐘低電平

        if (DataBufTmp & 0x80)
        {
        GPIO_SetBits(HC595x.Data.Port, HC595x.Data.Pin); //輸出1
        }
        else
        {
        GPIO_ResetBits(HC595x.Data.Port, HC595x.Data.Pin); //輸出0
        }

        HC595_delay(5);

        GPIO_SetBits(HC595x.Clk.Port, HC595x.Clk.Pin); //時鐘高電平,上升沿數據移位

        HC595_delay(5);

        DataBufTmp = DataBufTmp << 1;
        }
        DataBuf++;
        }
        GPIO_SetBits(HC595x.Lck.Port, HC595x.Lck.Pin); //設置LCK為高電平,上升沿數據鎖存
        HC595_delay(10);
        GPIO_ResetBits(HC595x.Lck.Port, HC595x.Lck.Pin); //設置LCK為低電平,上升沿數據鎖存
        }



        關鍵詞: stm3274HC595級聯程

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 泗水县| 韩城市| 无锡市| 玉溪市| 永平县| 资源县| 尉犁县| 三台县| 闵行区| 瑞丽市| 通化市| 河池市| 报价| 汕头市| 五大连池市| 旬邑县| 深泽县| 九江市| 嘉祥县| 广水市| 东明县| 丹巴县| 广南县| 皮山县| 福贡县| 新宁县| 葫芦岛市| 宝山区| 新宾| 理塘县| 公安县| 新乡县| 辽阳县| 靖州| 普兰店市| 策勒县| 五河县| 信宜市| 塔城市| 霍邱县| 田林县|