Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
MorkTwys
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 124
1

STM32F103C8t6 SPI управление ногой NSS

12.03.2016, 13:15. Просмотров 3006. Ответов 1
Метки нет (Все метки)

Вообщем настраиваю я SPI на STM32F103C8t6.
Ногу NSS настраиваю на software управление:

Код
#define CS_LOW GPIOB->BRR=GPIO_BRR_BR12;
#define CS_HIGH GPIOB->BSRR=GPIO_BSRR_BS12;

int main()
{
ConfigSystemClock();
InitSysTick();
InitSPI();

delay(5);

while(1)
{
delay(1000);
SendCommomd(107);
}
}

void SendCommomd(uint8_t Commomd)
{

CS_LOW;
SPI2->DR=Commomd;
while(!(SPI2->SR & SPI_SR_RXNE));
uint8_t SPIReceiveData=SPI2->DR;
CS_HIGH;
}

void InitSPI()
{
/* SPI2
*     NSS PB12
*    SCK PB13
*    MISO PB14
*    MOSI PB15
*/

RCC->APB2ENR|=RCC_APB2ENR_IOPBEN;
RCC->APB1ENR|=RCC_APB1ENR_SPI2EN;

delay(1);

GPIOB->CRH&=~(GPIO_CRH_MODE12 | GPIO_CRH_CNF12);
GPIOB->CRH&=~(GPIO_CRH_MODE13 | GPIO_CRH_CNF13);
GPIOB->CRH&=~(GPIO_CRH_MODE14 | GPIO_CRH_CNF14);
GPIOB->CRH&=~(GPIO_CRH_MODE15 | GPIO_CRH_CNF15);

GPIOB->CRH|=GPIO_CRH_CNF12_1 | GPIO_CRH_MODE13 | GPIO_CRH_CNF13_1 |
GPIO_CRH_MODE14 | GPIO_CRH_CNF14_1 | GPIO_CRH_MODE15 | GPIO_CRH_CNF15_1;

GPIOB->ODR|=GPIO_Pin_12;

SPI2->CR1|=SPI_CR1_BR | SPI_CR1_CPHA |  SPI_CR1_SSI | SPI_CR1_SSM;
SPI2->I2SPR=0;
SPI2->CR1|=SPI_CR1_MSTR | SPI_CR1_SPE;
}

void InitSysTick()
{
SysTick->LOAD=TimerTick;   // Загрузка значения
SysTick->VOT=TimerTick;      // Обнуляем таймеры и флаги
SysTick->CTRL=SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk;
}

extern "C" void SysTick_Homdler()
{
micross=micross+8;
microssCouner=microssCouner+8;
if (microssCouner==1000) {myttys++;microssCouner=0;}
}
На деле все работает, только вот нога NSS (на графике - канал ENABLE) почему то дергается! Не могу понять в чем проблема! Подскажите!

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2016, 13:15
Ответы с готовыми решениями:

Управление NSS в SPI
Доброго времени суток. У меня такая ситуация : Установка не активного уровня...

STM32F103CB SPI, Hardware NSS не работает
Всю голову сломал. STM32F103CB, SPI1. NSS в режиме мастера может дрыгаться...

STM32F103 SPI не дрыгает ножкой NSS
Блин никак не могу заставить стм-ку задрыгать ногой NSS самостоятельно В чем...

STM32F103C8 hardware NSS в SPI2
Добрый день! Настраиваю работу контроллера STM32F103C8 с устройством по SPI2 с...

ILI9341 SPI DMA, SPI, UART библиотеки
Доброго времени, форумчане... Посоветуйте библиотек плиз... 0) Либа для...

1
mosvd
0 / 0 / 0
Регистрация: 09.03.2016
Сообщений: 10
15.03.2016, 23:55 2
Как вариант 1 - проверить работу SPI на стандартном примере stm-овской библиотеки с теми же выводами
Вариант 2 - использовать для NSS ножку контроллера, расположенную подальше от CLK (PB13) - может разводка на плате такая что есть наводки.
Вариант 3 - в логическом анализаторе оставить мониторинг только пары каналов - может ему не хватает мощи
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2016, 23:55

STM32L152 проблема с таймером(ногой PB12) и DAC(PA5)
Есть проектик на STM32T152. К ноге PB12 подключен пьезик, и используется...

SPI -> 485->SPI
Есть необходимость переводить SPI на 485 интерфейс. Хотел бы уточнить, драйвер...

STM32F103C8T6
Доброго времени суток. Процессор STM32F103C8T6 один из самых дешевых и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru