Hirdetés

Új hozzászólás Aktív témák

  • bear_

    aktív tag

    Sziasztok!

    Nem arduino, hanem STM32 és HAL, de lehet tudtok segíteni.

    Rendeltem az aliexpressről egy multifunctional shieldet, ilyet: [link]
    Szeretném a 7 szegmenses kijelzőt működésre bírni, de nem igazán járok sikerrel.
    Ahogy az oldalon is látszik a kijelzőt 2 kaszkádba kötött 595-ös shift regiszter vezérli, így elvileg 16 bittel lehet "feltölteni". Az egyik shift register a szegmenseket, a másik a kijelzőket egyenként engedélyezi.

    Íratm is hozzá egy progit ami így néz ki:

    int digits[16] = {1,1,1,1,1,0,1,0,1,0,1,1,0,1,1,0};

    int main(void)
    {
    int digits[16] = {1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0};
    while (1)
    {
    HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_RESET);
    for(int i=0; i>=15;i--){
    HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_SET);
    if(digits[i]==1){
    HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_SET);
    }else{
    HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_RESET);
    }
    HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_RESET);
    }
    HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_SET);

    }

    STCP: LCHCLK, storage register clock input
    SHCP: SFTCTLK, shift register clock input
    DS: serial data

    Sajnos az eredmény egy katyvasz, nem azt írja ki amit szeretnék, mindig ugyanaz a minta jelenik meg akármilyen értékek szerepelnek a tömbben.

    Mi lehet a hiba?

Új hozzászólás Aktív témák