STM8S003F3, нужна помощь

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Всем привет :)

Решил я тут окончательно распрощаться с AVR и перейти на STM. С STM32 уже давно научился работать, и вот теперь решил и за STM8 взяться. Заказал кучку STM8S003F3 (цена по сравнению с AVR приятно удивила), запаял один из них на плату, подключил программатор (самодельный ST-Link V2), написал в IAR простенькую программу по примерам из инета, прошил, и... И нифига не работает. Прошивка идет, отладка идет, а на выходах МК все по нулям. Программа выглядит так:

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

#include "iostm8s003f3.h"

int i = 0;

int main( void )
{
  PC_DDR_bit.DDR7 = 1;   // Ножка PC7 конфигурируется на вывод
  PC_DDR_bit.DDR6 = 1;   // Ножка PC6 конфигурируется на вывод
  
  while(1)              // Бесконечный цикл
  {
     PC_ODR_bit.ODR7 = 1;
     PC_ODR_bit.ODR6 = 1;
  }
}
Кварц не подключал, нужна работа от внутреннего генератора. Что я делаю не правильно?
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Реклама
Мучитель микросхем
Сообщения: 478
Зарегистрирован: Ср окт 15, 2008 09:33:03
Откуда: Воронеж

Сообщение Galizin »

В библ stm8s_gpio.c устанавливаются GPIOx->DDR для направления
GPIOx->CR1 для push-pull
GPIOx->CR2 для медленного режима

У Вас GPIOx->CR1 не установлен. Попробуйте притянуть вывод резистором к питанию. Если заработает, значит причина в этом. Я ни разу не работал с stm8. Все это я узнал из файла примера а потом файла библиотеки. Если что, смотрите в первоисточник.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Банальный совет - читать даташит.
СпойлерИзображение

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

#include "iostm8s003f3.h"

  PC_DDR_bit.DDR7 = 1;   
  PC_DDR_bit.DDR6 = 1;   
  
 
     PC_ODR_bit.ODR7 = 1;
     PC_ODR_bit.ODR6 = 1;
Совет - выкинуть хэдер IAR и забыть подобные записи , работать аналогично STM32 :

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

#include "stm8s.h"

#define LED_RED 0x80;
#define LED_GREEN 0x40;
void main (void)
{
GPIOA->DDR|= LED_RED |  LED_GREEN;

GPIOA->CR1 |=LED_RED |  LED_GREEN;
GPIOA->CR2 = 0;

GPIOA->ODR  |=LED_RED |  LED_GREEN;

while(1)
{
}
}
Последний раз редактировалось dosikus Вт дек 17, 2013 15:42:38, всего редактировалось 2 раза.
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

А что вы ожидаете там увидеть? Вы в цикле устанавливаете в единицу оба бита, при том, что выходы по умолчанию сконфигурированы, как открытый сток.
выкинуть хэдер IAR и забыть подобные записи
Да нормальные у иара хедеры. В чем-то даже посимпатичнее стм-овских.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

a5021 писал(а): В чем-то даже посимпатичнее стм-овских.
Я даже знаю чем - битовыми полями . :)))
Кроме "симпатичности" никаких практических преимуществ , зато вред - уход от стандарта , очевиден. :)))
Последний раз редактировалось dosikus Вт дек 17, 2013 16:01:21, всего редактировалось 1 раз.
Реклама
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Стандарта чего?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

a5021 писал(а):Стандарта чего?
Си разумеется . :)))
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Огромное всем спасибо :beer: Все заработало! :))
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

КАШАК , STM8S003F по цене мало отличается от STM32F03F.
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Купить только никак.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

dosikus писал(а):КАШАК , STM8S003F по цене мало отличается от STM32F03F.
Ну эти я брал по 100р за 5шт. (при цене Mega8 в 85р. у нас в городе). Заказывал на ebay (там Mega8 тоже раза в 2 дороже, чем STM). Да и STM8S003F с головой хватает под мой проект и по памяти и по количеству выводов :))
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Не совсем по теме, но все же. Вот в Eclipse, когда при зажатом Ctrl кликаешь по функции/переменной и т.п., то перекидывает в библиотеку, которая содержит эту функцию/переменную... на строку в которой оно объявлено. Ну вообще стандартная функция для IDE, никого не удивишь, а кроме того очень удобная, особенно когда кода много :) Так вот в IAR я данную функцию не обнаружил. Есть там что-то подобное?
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

КАШАК писал(а): Так вот в IAR я данную функцию не обнаружил. Есть там что-то подобное?
Что в IAR, что в Keil есть контекстное меню, вызываемое кликом правой кнопки .
А там :
Goto Definition
Goto Declaration (Reference)
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик

Сообщение КАШАК »

Спасибо :)) Буду дальше разбираться :) Все-таки плохо, что под Eclipse нет плагина для STM8...
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Контактная информация:
Ответить

Вернуться в «ARM»