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

 
 
> SPI не принимает больше одного байта
Nosaer
сообщение Jun 29 2017, 11:37
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 6-02-15
Пользователь №: 84 967



Доброго времени суток.
Столкнулся со следующей проблемой.
В данном случае SPI работает корректно:

Код
uint8_t    BufReadMR45[3] = {0x03,0x00,0x00};
uint8_t     DataReadMR45[5] = {0};    

    void ReadMR45(void)
    {

        HAL_GPIO_WritePin(PortCSMR45, PinCSMR45, GPIO_PIN_RESET);                                                        // CS on
        HAL_Delay(1);
        HAL_SPI_Transmit(&hspi1, &BufReadMR45[0], 3, 1000);                                                                // Отправка данных по SPI
        HAL_SPI_Receive(&hspi1, &DataReadMR45[0], 1, 1000);                                                                // Получение данных по SPI

        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
        HAL_GPIO_WritePin(PortCSMR45, PinCSMR45, GPIO_PIN_SET);                                                            // CS off
        HAL_UART_Transmit(&huart1, &DataReadMR45[0], 1, 0x1000);                                                    // Отправляю данные по UART
        ByteMR45_R = ByteMR45_R + 1;
    }


Если я изменю функцию:
Код
HAL_SPI_Receive(&hspi1, &DataReadMR45[0], 5, 1000);

Чтобы считывать сразу больше 1 байта, программа зависает.
Отладчик приводит в HardFault_Handler(void)

Процессор STM32F030, до этого работал с серией F4, таких проблем вроде как не было.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
x893
сообщение Jun 30 2017, 03:34
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



А что стоит в инициализациии SPI ?

hspi->Init.DataSize = ???

Читаете 16 битными словами а буфер даете на 5 байт.
Программе конечно пофиг - она читает 16 бит и записывает и 2 к указателю прибывит.

Кто такое издевательство выдержит ?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 20:25
Рейтинг@Mail.ru


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