Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: baran123 - 27 Nisan 2015, 00:06:14

Başlık: CCS C to STM ( SPI )
Gönderen: baran123 - 27 Nisan 2015, 00:06:14
Bir uygulamamı STM'e çevirmeye çalışıyorum.Fakat SPI hazırlama kısmını tam olarak yapamadım.

Master , SPI hızı clock'un 16 ya bölümü, low dan higha, gönderici, sonunu anlamadım.
Bu parametreleri anlamlarının bir kaç tanesini biliyorum.Açıklama şansımız var ise süper olur :)

setup_spi(SPI_MASTER | SPI_CLK_DIV_16 | SPI_L_TO_H | SPI_XMIT_L_TO_H | SPI_SAMPLE_AT_END);

Böyle yapmaya başladım;

static void Init_SPI(void)
{
    SPI_InitTypeDef SPI_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);

    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;
    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB;
    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
    SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
    SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
   
    SPI_Init(SPI1,&SPI_InitStructure);
   
    SPI_Cmd(SPI1,ENABLE);
}


Bir de A0 MOSI, A1 CLOCK yapmak istiyorum.
Başlık: Ynt: CCS C to STM ( SPI )
Gönderen: justice_for_all - 27 Nisan 2015, 09:16:02
Alıntı Yap

// SPI Mode | MOTOROLA | MICROCHIP | CCS                                                       | Data clocked in at
//----------------------------------------------------------------------------------- |
//           | CPOL CPHA | CKP CKE  |                                                                         |
//    0     |  0    0          |   0   1       | SPI_L_TO_H | SPI_XMIT_L_TO_H                  | low to high edge
//    1     |  0    1          |   0   0       | SPI_L_TO_H                                                    | high to low edge
//    2     |  1    0          |   1   1       | SPI_H_TO_L                                                    | high to low edge
//    3     |  1    1          |   1   0       | SPI_H_TO_L | SPI_XMIT_L_TO_H                  | low to high edge


SPI pin secme için GPIO AF den yapman gerekiyor.