SPI 라이브러리 함수

CODEDRAGON Development/IoT

반응형


 

 

SPI 라이브러리 함수

Arduino Uno SPI 라이브러리에서는 4MHz 속도, MSB 우선, 모드 0번을 디폴트값으로 가집니다.

 

·       begin()

·       end()

·       setFrequency()

·       setBitOrder()

·       setClockDivider()

·       setDataMode()

·       transfer()

·       shiftOut()

 

 

 

begin()

SPI통신 초기화

 

end()

SPI통신 종료 

 

 

 

setFrequency()

 

void setFrequency(uint32_t freq)

 

매개변수

설명

freq

통신 속도

 

 

 

 

setBitOrder()

SPI통신을 할때 데이터의 전송순서를 설정한다. LSBFIRST MSBFIRST 선택할 있습니다.

 

void setBitOrder(uint8_t bitOrder)

 

매개변수

설명

bitOrder

데이터 전송 방법 (LSBFIRST, MSBFIRST)

 

 

 

setClockDivider()

시스템에서 사용할 클럭의 상대적인 분주비율을 설정한다. AVR기반의 보드에서는 2,4,8,16,32,64,128 선택할 있으며 default값은 SPI_CLOCK_DIV4 시스템클럭의 1/4속도로 데이터를 전송합니다. 

 

setClockDivider(rate)

 

 

 

 

setDataMode()

클럭의 phase polarity 조합하여 4가지의 전송모드를 나타낸다. 내용이 어렵기 때문에 자세한 내용은 생략합니다.

 

 

void setDataMode(uint8_t dataMode)

 

매개변수

설명

dataMode

데이터 모드

SPI_MODE0, SPI_MODE1, SPI_MODE2, SPI_MODE3 하나를 지정

 

 

 

transfer()

SPI통신으로 데이터를 보내고 데이터를 수신받습니다. 

 

 

uint8_t transfer(uint8_t data)

 

MISO 통해 슬레이브에서 수신된 8비트 데이터를 반환합니다.

매개변수

설명

data

MOSI 통해 슬레이브로 전송할 8비트 데이터

 

 

 

void transferBytes(uint8_t *out, uint8_t *in, uint32_t size)

 

매개변수

설명

out

MOSI 통해 슬레이브로 전송할 바이트 데이터 배열

in

MISO 통해 슬레이브에서 수신된 바이트 데이터 저장을 위한 버퍼

size

송수신할 데이터의 바이트 단위 크기

 

 

 

 

shiftOut()

한번에 비트씩의 바이트를 깁니.

최고(가장 왼쪽) 또는 최저(가장 오른쪽) 비트부터 시작합니.

비트에, 클락 (Clock Pin) HIGH 되고, 다음 비트는 데이터 라인에서 읽히고, 클락 핀은 LOW 됩니.

비트는 차례로 데이터 핀에 써지며, 클락 핀이 펄스되어(high 되면, low) 비트가 사용가능함을 가리킵니.

주의 - 올라가는 에지에 의해 클락되는 장치와 인터페이스하면, shiftOut() 불리기 전에 클락 핀이 로우되는, 예를 들어 digitalWrite(clockPin, LOW), 것을 확인해야 합니.

 

 

shiftOut(dataPin, clockPin, bitOrder, value)

 

매개변수

설명

dataPin

비트에 입력할 (int)

clockPin

dataPin 옳은 (int) 맞추어지면 토글할

bitOrder

비트들 안에서 어떤 순서로 옮길지 설정합니다.

 

MSBFIRST

MSB 우선

LSBFIRST

LSB 우선

 

value

옮길 자료. (byte)

 

https://www.arduino.cc/reference/ko/language/functions/advanced-io/shiftout/

 

 

 

'Development > IoT' 카테고리의 다른 글

4자리 7 세그먼트  (0) 2018.05.20
#define 여러줄 정의 (역슬래쉬; \)  (0) 2018.05.19
SPI (Serial Peripheral Interface)  (0) 2018.05.17
수납함  (0) 2018.05.16
74595 IC, 7 세그먼트 + 74595(74HC595)  (0) 2018.05.15