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

 
 
> STM32, SPI, данные не записываются в регистр DR, хотя в ф-ю приходят и выставляются
Метценгерштейн
сообщение Jan 28 2013, 10:02
Сообщение #1


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



непонятность с SPI:
в ф-ю SPI_I2S_SendData(); приходят данные (0xF0), это видно на скрине


а после след. шага эти данные в регистр DR не записываются


о почему так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 11)
koyodza
сообщение Jan 28 2013, 10:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Проверьте чему равно SPIx
Может там не SPI1
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jan 28 2013, 11:00
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Наверное потому, что DR на чтение и DR на запись - это два разных регистра?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Jan 28 2013, 12:39
Сообщение #4


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



да вроде как это один регистр. Да и на скрине справа видно, что красным нигде новые данные не появились.

вот скрин того, что пришло как SPI1.


Сообщение отредактировал Метценгерштейн - Jan 28 2013, 12:42
Go to the top of the page
 
+Quote Post
koyodza
сообщение Jan 28 2013, 13:33
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



А Вас не смущает, что в окне справа и в tooltip при наведении курсором не совпадают и другие регистры?
Ищите, Вы или не тот SPI мониторите, или не туда пишете
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jan 28 2013, 13:37
Сообщение #6


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Метценгерштейн @ Jan 28 2013, 18:39) *
да вроде как это один регистр. Да и на скрине справа видно, что красным нигде новые данные не появились.

Нет, это разные регистры:
Цитата
DR[15:0]: Data register
Data received or to be transmitted.
The data register is split into 2 buffers - one for writing (Transmit Buffer) and another one for
reading (Receive buffer). A write to the data register will write into the Tx buffer and a read
from the data register will return the value held in the Rx buffer.



--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Jan 28 2013, 14:09
Сообщение #7


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



регистры разные, но виден нам только один. Он в отладчике и присутствует.

пока не победил. Разбираюсь.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jan 28 2013, 15:58
Сообщение #8


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Метценгерштейн @ Jan 28 2013, 20:09) *
регистры разные, но виден нам только один. Он в отладчике и присутствует.

Вот именно. Видите вы тот, что для чтения. А пишете - в другой.
Тот, который вы видите, изменится тогда, когда будет принят байт (и взведётся флаг RXNE).
(Флаг этот, кстати, сбрасывается чтением DR. Так что вы его можете потерять при наблюдении DR в отладчике.)


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Jan 28 2013, 16:11
Сообщение #9


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



а, похоже на правду.
А как мне просмотреть тогда? Какие методы есть? Что тут посоветовать?
А по тому, что я в SPI1 данные отправляю- это видно из структуры?

Я wiznet инициализирую, но данные с него не получаю, вот и роюсь в SPI. Значит, передача все-же работает.

Сообщение отредактировал Метценгерштейн - Jan 28 2013, 16:13
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jan 28 2013, 17:16
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Кстати, так можно словить и еще один глюк - в отладчике при показе содержимого DR регистр УЖЕ прочитался. В результате в программе получим совсем не то, что хотели
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Jan 28 2013, 17:58
Сообщение #11


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



итого, как в отладчике делают, чтобы смотреть что пришло в железо по SPI? И чтобы наш просмотр не влиял ни на что.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jan 28 2013, 20:41
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Метценгерштейн @ Jan 28 2013, 21:58) *
итого, как в отладчике делают, чтобы смотреть что пришло в железо по SPI? И чтобы наш просмотр не влиял ни на что.

я ставлю бряк на присваивании переменной, например, того же DR
выполняю и смотрю значение переменной
Go to the top of the page
 
+Quote Post

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

 


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


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