реклама на сайте
подробности

 
 
> SPI для SAM3S4B, Настройка SPI
kvn
сообщение Oct 14 2015, 09:09
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 19-01-15
Пользователь №: 84 675



Добрый день! Я новичок в программировании ARM. Хотелось разобраться с инициализацией SPI для контроллера SAM3S4B. Далее код. После включения SPI в статусных регистрах ничего не высвечивается.

#include "main.h"

/** SPI MISO pin definition. */
#define PIN_SPI_MISO {PIO_PA12A_MISO, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}

/** SPI MOSI pin definition. */
#define PIN_SPI_MOSI {PIO_PA13A_MOSI, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}

/** SPI SPCK pin definition. */
#define PIN_SPI_SPCK {PIO_PA14A_SPCK, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}

/** SPI chip select pin definition. */
#define PIN_SPI_NPCS0_PA11 {PIO_PA11A_NPCS0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}

/** List of SPI pin definitions (MISO, MOSI & SPCK). */
#define PINS_SPI PIN_SPI_MISO, PIN_SPI_MOSI, PIN_SPI_SPCK

/** Pins used by the application.*/
static const Pin pins[] = {PINS_SPI, PIN_SPI_NPCS0_PA11};

#define SPI_MR_PCS_1 ((0<<0)|(1<<1)|(1<<2)|(1<<3))



int main(void)
{

PIO_Configure(pins, PIO_LISTSIZE(pins));


PMC->PMC_PCER0 = ( 1 << ID_SPI | 1 << ID_PIOA);

SPI->SPI_CR = SPI_CR_SWRST;


SPI->SPI_MR = SPI_MR_MSTR | SPI_MR_MODFDIS;

SPI->SPI_MR |= ( (SPI_MR_PCS_1 << 16) & SPI_CSR_BITS_Msk );

SPI->SPI_CSR[0] = SPI_CSR_CPOL | SPI_CSR_BITS_8_BIT | (0x78 << 8);

SPI->SPI_CR = SPI_CR_SPIEN;

}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01338 секунд с 7
ELECTRONIX ©2004-2016