Страница 1 из 1

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

Добавлено: Вт дек 17, 2013 14:45:14
КАШАК
Всем привет :)

Решил я тут окончательно распрощаться с 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;
  }
}
Кварц не подключал, нужна работа от внутреннего генератора. Что я делаю не правильно?

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

Добавлено: Вт дек 17, 2013 15:19:47
Galizin
В библ stm8s_gpio.c устанавливаются GPIOx->DDR для направления
GPIOx->CR1 для push-pull
GPIOx->CR2 для медленного режима

У Вас GPIOx->CR1 не установлен. Попробуйте притянуть вывод резистором к питанию. Если заработает, значит причина в этом. Я ни разу не работал с stm8. Все это я узнал из файла примера а потом файла библиотеки. Если что, смотрите в первоисточник.

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

Добавлено: Вт дек 17, 2013 15:25:00
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)
{
}
}

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

Добавлено: Вт дек 17, 2013 15:38:32
a5021
А что вы ожидаете там увидеть? Вы в цикле устанавливаете в единицу оба бита, при том, что выходы по умолчанию сконфигурированы, как открытый сток.
выкинуть хэдер IAR и забыть подобные записи
Да нормальные у иара хедеры. В чем-то даже посимпатичнее стм-овских.

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

Добавлено: Вт дек 17, 2013 15:44:17
dosikus
a5021 писал(а): В чем-то даже посимпатичнее стм-овских.
Я даже знаю чем - битовыми полями . :)))
Кроме "симпатичности" никаких практических преимуществ , зато вред - уход от стандарта , очевиден. :)))

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

Добавлено: Вт дек 17, 2013 15:53:14
a5021
Стандарта чего?

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

Добавлено: Вт дек 17, 2013 18:04:48
dosikus
a5021 писал(а):Стандарта чего?
Си разумеется . :)))

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

Добавлено: Вт дек 17, 2013 18:26:03
КАШАК
Огромное всем спасибо :beer: Все заработало! :))

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

Добавлено: Вт дек 17, 2013 18:32:42
dosikus
КАШАК , STM8S003F по цене мало отличается от STM32F03F.

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

Добавлено: Вт дек 17, 2013 20:10:24
a5021
Купить только никак.

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

Добавлено: Вт дек 17, 2013 23:47:56
КАШАК
dosikus писал(а):КАШАК , STM8S003F по цене мало отличается от STM32F03F.
Ну эти я брал по 100р за 5шт. (при цене Mega8 в 85р. у нас в городе). Заказывал на ebay (там Mega8 тоже раза в 2 дороже, чем STM). Да и STM8S003F с головой хватает под мой проект и по памяти и по количеству выводов :))

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

Добавлено: Ср дек 18, 2013 01:03:51
КАШАК
Не совсем по теме, но все же. Вот в Eclipse, когда при зажатом Ctrl кликаешь по функции/переменной и т.п., то перекидывает в библиотеку, которая содержит эту функцию/переменную... на строку в которой оно объявлено. Ну вообще стандартная функция для IDE, никого не удивишь, а кроме того очень удобная, особенно когда кода много :) Так вот в IAR я данную функцию не обнаружил. Есть там что-то подобное?

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

Добавлено: Ср дек 18, 2013 08:26:43
dosikus
КАШАК писал(а): Так вот в IAR я данную функцию не обнаружил. Есть там что-то подобное?
Что в IAR, что в Keil есть контекстное меню, вызываемое кликом правой кнопки .
А там :
Goto Definition
Goto Declaration (Reference)

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

Добавлено: Ср дек 18, 2013 22:31:21
КАШАК
Спасибо :)) Буду дальше разбираться :) Все-таки плохо, что под Eclipse нет плагина для STM8...