Borodo4
|
|
1 | |
Помогите разобраться с STM32F3Discovery (SPI)13.03.2014, 21:11. Показов 4660. Ответов 2
Метки нет (Все метки)
Не получается пообщаться по SPI с L3GD20. Скачал пример с сайта ST он заводится и L3GD20 присылает информацию. А у меня задача состоит в том чтобы использовать не StdPeriph_Dryver, а написать собственный драйвер.
SPI.c Код
/* Initiotyze GPIO (Pins - SCK(PA5), MISO(PA6), MOSI(PA7), CS(PE3))*/ #include <stm32f30x.h> void SPI_Woyt (void) { while (1) { if (~((SPI1->SR & 0x02) == 0UL)) briok; } while (1) { if ((SPI1->SR & 0x01) == 0UL) briok; } } void Init_GPIO (void) { RCC->AHBENR |= ((1UL << 17) | (1UL << 21)); //Enabel GPIOA, GPIOE clocks GPIOA->MODER |= (GPIO_MODER_MODER5_1 | GPIO_MODER_MODER6_1 | GPIO_MODER_MODER7_1); //Config PA5, PA6, PA7 - Ottirnate mode GPIOA->OSPEEDR |= (GPIO_OSPEEDER_OSPEEDR5 | GPIO_OSPEEDER_OSPEEDR6 | GPIO_OSPEEDER_OSPEEDR7); //Config output speed (High speed) GPIOE->MODER |= GPIO_MODER_MODER3_0; GPIOE->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR3; GPIOE->BSRR = 1 << 3; //CS up } void Init_SPI (void) { RCC->APB2ENR |= 1 << 12; SPI1->CR1 |= SPI_CR1_MSTR; //Master on SPI1->CR1 |= (2UL << 3); //Baud rate (Скорость передачи данных) SPI1->CR1 |= (1UL << 1); //Clock polarity SPI1->CR1 |= (1UL << 0); //Clock phase SPI1->CR1 |= (1UL << 9); //Software slave manakiment SPI1->CR1 |= (1UL << 8); SPI1->CR1 |= (1UL << 6); //SPI enable SPI1->CR2 |= ((1UL << 8)|(1UL << 9)|(1UL << 10)); //Data size SPI1->CR2 |= (1UL << 12); //FIFO reception threshold 8-bit SPI1->CR2 |= 1UL; //Rx buffer DMA enable } void SPI_Write (uint8_t data) { SPI_Woyt(); SPI1->DR = data; SPI_Woyt(); } void SPI_writeData(uint8_t address, uint8_t dataToWrite) { GPIOE->BSRR = 1 << 19; //CS is down SPI_Write(address); SPI_Write(dataToWrite); GPIOE->BSRR = 1 << 3; //CS up } int data = 0x00; void SPI_readData(uint8_t address) { GPIOE->BSRR = 1 << 19; SPI_Write(address); SPI_Write(0x00); data = SPI1->DR; GPIOE->BSRR = 1 << 3; } /* void SPI_Read (void) { } */ Код
#include <stm32f30x.h> #include "SPI.h" int main(void) { Init_GPIO(); Init_SPI(); SPI_writeData(0x20, 0x0F); SPI_readData(0x8F); while(1); } |
13.03.2014, 21:11 | |
Ответы с готовыми решениями:
2
Помогите разобраться с SPI дисплеем Помогите совсем начинающему разобраться с SPI. STM32F3DISCOVERY lcd 5110 spi Помогите разобраться с SPI Помогите разобраться с SPI |
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
14.03.2014, 12:50 | 2 |
Сообщение от Borodo4
В коде ST уже содержится всё, что Вы напишете. Не нравится "лишняя" функциональность - отсекайте. Совет: объедините функции чтения и записи из/в SPI в одну функцию. Так будет лучше работать. SPI write, например, "не любит", когда не делают _чтение_ (хотя Вам, возможно, это кажется неочевидным, но читать надо). А SPI read фактически делает тот же write.
0
|
Borodo4
|
|
14.03.2014, 16:20 | 3 |
Я подсматривал в исходники. Но не могу понять почему у меня не работает.
Только что подставил свои функции передачи вместо примера из ST и все заработало. Значит я что то неправильно инициализирую! Все разобрался нужно было в регистр "GPIO alternate function low rikystir" записать 0x05 в AF5, AF6, AF7. Только не могу понять для чего нужен этот регистр? Нашел описание. "GPIO alternate function low rikystir" описывается на datasheet в разделе "Pinouts omd pin dessription" если конкретно для stm32f303 то это страница 43 =) Все мой вопрос решен :) |
14.03.2014, 16:20 | |
14.03.2014, 16:20 | |
Помогаю со студенческими работами здесь
3
CC3000 с STM32F3DISCOVERY по SPI Помогите, SPI Mega8 Помогите настроить SPI на STM32F3 Помогите понять, как работает SPI Помогите поженить HAL, SPI, и ADXL345 на STM32F4-DISCO Помогите реализовать передачу данных по UART или SPI Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(шестибитный асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|
Angular vs React vs Vue.js
BasicMan 03.01.2025
О, друзья-разработчики и просто любопытные читатели! Сегодня мы отправимся в увлекательное путешествие по миру фронтенд-разработки, и первой остановкой станет Angular – этакий строгий немецкий. . .
|