Ethernet. Вопросы по интерфейсу и реализации

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: Ethernet. Вопросы по интерфейсу и реализации

Сообщение просто КОТ »

Уфф... Кажется программист из меня плохой. Хотя как будто бы уже год этому учат (семестр С# и потом месяца 3 С++) И на компах вроде бы всё гладко. А вот стоит уйти в МК и сразу всё какое-то мутное...

Попытался проинициализироваться с нуля. Почитал ещё раз Ref.Manual. И не могу заставит её даже светодиодом поморгать. Что я делаю не так?
Спойлер

Код: Выделить всё

#include "system_stm32f7xx.h"
#include "stm32f7xx.h"
#define delay_ms(ms) _delay_((ms)*1600)
 
void _delay_ (uint32_t delay)
{
    while(delay--);
}

int main(void)
{ SystemInit();
	SystemCoreClockUpdate();
	RCC->AHB1ENR |= 0x02;  // Enable GPIOB
  GPIOB->MODER = 0x55555555; // All to GPIO
  GPIOB->OTYPER = 0x00;  // All to push-pull
  GPIOB->OSPEEDR = 0x00; // All to Low-speed 
  GPIOB->PUPDR = 0x00;   // No pull-up, pull-down
	
  while (1)
  {
		/*Blink with GPIO pins : PB14 PB7 */
		delay_ms(100);
                GPIOB->ODR |= 0x4080; // '1' to PB14 & PB7
		delay_ms(100);
                GPIOB->ODR = 0x00;   // '0' to PB14 & PB7
  }
}
Изображение
И ты врёшь!!! © Vladisman
Изображение
Реклама
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Ethernet. Вопросы по интерфейсу и реализации

Сообщение YS »

Хотя как будто бы уже год этому учат (семестр С# и потом месяца 3 С++)
Это очень мало; более того, C# и C++ в эмбед-программировании не помощники, это вообще другой мир. :) На ПК далеко и надежно скрыто то, что в эмбеде представляет основной интерес. Программист встроенных систем - прежде всего инженер-электронщик, а не алгоритмист.

Вот вы говорите, программа не работает. Как конкретно она не работает? Светодиоды не мигают? Светятся постоянно? Не светятся вообще?

SystemInit() и SystemCoreClockUpdate() вызывать не надо. SystemInit() уже была вызвана в startup-файле, а тактовую частоту вы не меняли.

А так код у вас правильный, если только в константах не ошиблись. "Магические числа" читаются тяжело. Посмотрите stm32f7xx.h, там определены битовые маски для всех регистров, в том числе и для GPIO.

Попробуйте настроить GPIO на высокую скорость и объявить delay (параметр) как volatile.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
Аватара пользователя
Грендайзер
Мучитель микросхем
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Re: Ethernet. Вопросы по интерфейсу и реализации

Сообщение Грендайзер »

Сам не особо в программировании контроллеров, во всяком случае в серьёзном. С STM'ами вообще не давно работаю... Но тем не менее вот файлик для моргалки диодов на плате STM32FDiscovery. Работаю в Keil 5. Понимаю что данная тема не совсем про это но попробуйте. Программка вызывала у меня самого несколько вопросов... но пока никак не дойдут руки поднять их на форуме.
P.S.
При создании проекта не забудте подключить файл startup.s и CIMSIS библиотеки для работы ядра.
Да и задержку надо увеличить...
Вложения
main.c
(1.5 КБ) 321 скачивание
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: Ethernet. Вопросы по интерфейсу и реализации

Сообщение просто КОТ »

YS писал(а):Это очень мало; более того, C# и C++ в эмбед-программировании не помощники, это вообще другой мир. :) На ПК далеко и надежно скрыто то, что в эмбеде представляет основной интерес. Программист встроенных систем - прежде всего инженер-электронщик, а не алгоритмист.
Дык ведь и тут как будто бы не белые пятна. Устройство МК могу с диаграммами и схемам по доске час расписывать. (вручную их рисуя по ходу беседы). Работу ЦАП, АЦП, ШИМ, АЛУ. Память. Регистры. ТТЛ и КМОП логику малой интеграции могу на транзисторные схемы слёту перерисовывать. В общем, восемь лет уж именно как электронщик. И, наконец, решил постичь это онкое искусство на грани софта и харда -- эмбед.
YS писал(а):А так код у вас правильный, если только в константах не ошиблись. "Магические числа" читаются тяжело. Посмотрите stm32f7xx.h, там определены битовые маски для всех регистров, в том числе и для GPIO.
Попробуйте настроить GPIO на высокую скорость и объявить delay (параметр) как volatile.
Код писал как раз в stm32f7xx.h и заглядывая. В том месте где структура объявлена GPIO_TypeDef. А он будто бы и не реагирует на меня вовсе. Никакого оживления на плате. Тишь да гладь. Но советы попробую.
Изображение
И ты врёшь!!! © Vladisman
Изображение
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Ethernet. Вопросы по интерфейсу и реализации

Сообщение YS »

А он будто бы и не реагирует на меня вовсе. Никакого оживления на плате.
То есть светодиоды вообще не горят? Тогда проверьте, какую функцию по-умолчанию имеют пины, на которые повешены светодиоды. Некоторые пины после сброса используются, например, для JTAG, и недоступны как GPIO. Тогда их надо переназначать.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
Ответить

Вернуться в «Интеграция с ПК»