發表文章

目前顯示的是 1月, 2022的文章

shiftOut()

  shiftOut() 說明 將一個字節的數據通過移位輸出的方式逐位輸出。數據可以從最高位(最左位)或從最低位(最右位)輸出。在輸出數據時,當一位數據寫入數據輸出引腳時,時鐘引腳將輸出脈衝信號,指示該位數據已被寫入數據輸出引腳等待讀取。 如果讀取數據的設備是在Arduino的時鐘引腳脈衝信號上升沿讀取Arduino的輸出數據,請確保在調用shiftOut()輸出數據前,應先通過digitalWrite(clockPin, LOW)語句,將時鐘引腳設置為LOW。這樣做是為了確保數據讀取準確無誤。 以上介紹的方法使用軟件實現數據輸出操作。如果想要通過硬件方法輸出數據,請參閱Arduino的SPI庫函數。通過硬件方法輸出數據更加快捷,但Arduino只有幾個特定引腳可用於使用硬件方法輸出數據。 語法 shiftOut(dataPin, clockPin, bitOrder, value) 參數 dataPin  – 數據引腳 clockPin  – 時鐘引腳 bitOrder  – 移位順序 ( 高位先出 或 低位先出) va l – 數據 返回值 無 注意 使用shiftOut()函數前,數據引腳(dataPin)和時鐘引腳(clockPin)必須先通過pinMode()指令設置為輸出(OUTPUT)模式。 shiftOut一次只能輸出1字節(8位)數據。如果需要輸出大於255的數值,需要通過多次使用shiftOut()輸出數據。如以下程序所示: [c gutter=”0″] // 高字節先出模式 int data = 500; //待輸出數據 shiftOut(dataPin, clock, MSBFIRST, (data >> 8)); // 輸出高位字節 shiftOut(dataPin, clock, MSBFIRST, data); // 輸出低位字節 // 低字節先出模式 data = 500; //待輸出數據 shiftOut(dataPin, clock, LSBFIRST, data); // 輸出低位字節 shiftOut(dataPin, clock, LSBFIRST, (data >> 8)); // 輸出高位字節