상세 컨텐츠

본문 제목

[STM32]8bit parallel-in/serial-out shift registers

Firmware/STM

by StephanosJ 2022. 12. 12. 16:18

본문

반응형

1. PA0(Latch), PA1(clk) Pin을 GPIO_Output Pin으로 설정합니다.

2. PA2(SDO) Pin을 GPIO_Input Pin으로 설정합니다.

3. Latch를 LOW > HIGH를 Write한다.

4. Latch이후 부터 SDO pin을 읽어서 Data를 확인할 수 있다.

(Latch한 시점의 IN8~IN1의 값을 Clk발생 할때마다 shift되어 Data를 읽어온다)

 

예를 들어

IN1 > LOW

IN2 > HIGH

IN3 > LOW

IN4 > HIGH

IN5 > LOW

IN6 > HIGH

IN7 > LOW

IN8 >HIGH

일 경우

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);      //latch low
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);           //latch high

for(uint8_t i=0; i<8; i++)     // latch한 시점의 IN8~IN1 pin의 상태를 읽어온다.
{

    uint8_t bitVal = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_2);    // sdo pin read

 

    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);      //clk high
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);  //clk low

}

 

반응형

관련글 더보기