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

 
 
> STM32F051C6 Регистр SPI, Хочу посмотреть значение регистра
Semicon
сообщение Dec 4 2012, 10:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 20-08-10
Из: Москва
Пользователь №: 59 022



Привет Всем!
У меня есть следующая задача:
1)Исходные данные:
-контроллер STM32F051C6
-среда IAR for ARM 6.40.1.3812

2)Необходимо:
-посмотреть значение регистра SPI1_DR

3)Решение:
-смотрю значения в режиме Debug в IAR
-смотрю значения регистра в памяти по адресу 0x400300C
-смотрю значения в STM Studio

4)Проблема:
-отображаются значения не соответствующие моим ожиданиям((( например в случае с Debug выводит значение 0xFF

Подскажите пожалуйста кто решал для себя такую задачу - как мне точно контролировать значения которые я принимаю или отсылаю по SPI (ответы типа посмотри осциллографом не принимаются))))) - я программист)))


--------------------
http://labfun.ru
Разработка электроники
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Mareng
сообщение Dec 4 2012, 10:39
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-02-07
Пользователь №: 25 487



Цитата(Semicon @ Dec 4 2012, 17:04) *
-отображаются значения не соответствующие моим ожиданиям(((

А можно узнать чего хотелось увидеть и в какой последовательности?
Go to the top of the page
 
+Quote Post
Semicon
сообщение Dec 4 2012, 10:57
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 20-08-10
Из: Москва
Пользователь №: 59 022



Цитата(Mareng @ Dec 4 2012, 14:39) *
А можно узнать чего хотелось увидеть и в какой последовательности?


При отладке я захожу в функцию(стандартная периферийная библиотека - файл stm32f0xx_spi.c)

void SPI_SendData8(SPI_TypeDef* SPIx, uint8_t Data)
{
uint32_t spixbase = 0x00;

/* Check the parameters */
assert_param(IS_SPI_ALL_PERIPH(SPIx));

spixbase = (uint32_t)SPIx;
spixbase += 0x0C;

*(__IO uint8_t *) spixbase = Data;
}
при исполнении последней строчки хотелось увидеть то, что я посылал туда, а вижу 0xFF


--------------------
http://labfun.ru
Разработка электроники
Go to the top of the page
 
+Quote Post
Mareng
сообщение Dec 4 2012, 11:35
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-02-07
Пользователь №: 25 487



При чтении регистра DR ты видишь то, что в него пришло по SPI последний раз. При записи в регистр DR - данные уходят в SPI(в линии)
Go to the top of the page
 
+Quote Post
nx6310
сообщение Dec 4 2012, 11:36
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 28-06-10
Пользователь №: 58 174



SPI-DR связан с двумя буферами. при записи в данный регистр данные пишутся в буфер передачи, при чтении из этого регистра вы получаете значение из буфера приёма. т.е. вы не сможете считать то, что записали в SPI-DR. Фактически чтение и запись происходит в разные регистры. Хотя это для stm32f103. Думаю в вашем случае то же самое.

Сообщение отредактировал nx6310 - Dec 4 2012, 11:37
Go to the top of the page
 
+Quote Post

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

 


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


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