CCS C to STM ( SPI )

Başlatan baran123, 27 Nisan 2015, 00:06:14

baran123

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.

justice_for_all

#1
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.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay