STM32 новичку в ARM что к чему
Re: STM32 новичку в ARM что к чему
Задержка жесть... 
- Реклама
Re: STM32 новичку в ARM что к чему
И сколько STM32 уже сгорело???Myp3ik писал(а):Сгорает![]()
"Я не даю готовых решений, я заставляю думать!"(С)
Re: STM32 новичку в ARM что к чему
для уверенности можно добавить volatileint j=0,i=0;
ошибаетесьзначит особых мер, в сравнении с теми же AVR по защите от статики предпринимать не нужно.
у выходных транзисторов сопротивление канала ненулевое (особенно при настройке на малую скорость), но резистор на 50..100 Ом добавить не помешает (если ведете сигналы наружу платы - типа RS232, SWD, LCD и т.д.)У STM32 ограничение тока короткого замыкания на выходах есть? Или сгорает?
-
Darth Cuauhtemoc
- Говорящий с текстолитом
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Re: STM32 новичку в ARM что к чему
Неужели придется землить все - стол, себя, паяльную станцию?zöner писал(а):ошибаетесь
Вопрос то интересует в том плане, могу я обращаться с ними так, как обращался с AVR (в смысле пайки)?
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Re: STM32 новичку в ARM что к чему
нет, не все так печально. У меня еще ничего не горело, ничего не заземляю и вообще над этим не задумываюсь.
Хотя видел людей у которых от статики дохли контроллеры только так, не знаю от чего зависит - сопротивления кожи, одежды и т.д.
Хотя видел людей у которых от статики дохли контроллеры только так, не знаю от чего зависит - сопротивления кожи, одежды и т.д.
- Реклама
-
Darth Cuauhtemoc
- Говорящий с текстолитом
- Сообщения: 1699
- Зарегистрирован: Вс июн 16, 2013 18:41:45
Re: STM32 новичку в ARM что к чему
У меня тоже никогда ни одна МОП-микросхема не горела от статики, и ни один МОП транзистор, хотя транзисторы, по крайней мере по даташитам (не знаю как в реальности) защитных стабилитронов затвор-исток не имели.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
-
Обфускатор
- Родился
- Сообщения: 13
- Зарегистрирован: Пн апр 29, 2013 22:05:08
Re: STM32 новичку в ARM что к чему
свежий взгляд на код выявил ошибку
нужно было
вместо
из за этого тактирование портов не заводилось на физическом устройстве , хотя на симуляторе все бегало аж бегом 
нужно было
Код: Выделить всё
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); Код: Выделить всё
RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); Re: STM32 новичку в ARM что к чему
HHIMERA, в режиме выхода PWM пару раз порты палил.
Иван Сусанин - первый полупроводник 
Re: STM32 новичку в ARM что к чему
всем привет! расскажите какие в KEIL есть битовые переменные. я подключил хидер stdbool.h, в нем нашел такое #define bool _Bool, а где определение _Bool я не нашел. меня интересует сколько бит памяти занимает тип _Bool.
_Bool test = 1514634861836; //такая строка не вызывает у компилятора подозрений. пока в качестве переменных-флагов использую uint8_t, но, может, есть более подходящий для этого тип?
_Bool test = 1514634861836; //такая строка не вызывает у компилятора подозрений. пока в качестве переменных-флагов использую uint8_t, но, может, есть более подходящий для этого тип?
-
uk8amk
- Поставщик валерьянки для Кота
- Сообщения: 2222
- Зарегистрирован: Вт ноя 27, 2007 11:32:06
- Откуда: Tashkent
Re: STM32 новичку в ARM что к чему
Из встроенной справкиdrakon писал(а):расскажите какие в KEIL есть битовые переменные.
__attribute__((bitband)) type attribute
ARM Compiler toolchain v5.02 for µVision Compiler Reference
Home > Compiler-specific Features > __attribute__((bitband)) type attribute
__attribute__((bitband)) type attribute
__attribute__((bitband)) is a type attribute that gives you efficient atomic access to single-bit values in SRAM and Peripheral regions of the memory architecture. It is possible to set or clear a single bit directly with a single memory access in certain memory regions, rather than having to use the traditional read, modify, write approach. It is also possible to read a single bit directly rather than having to use the traditional read then shift and mask operation. Example 10 illustrates the use of __attribute__((bitband)).
Example 10. Using __attribute__((bitband))
Код: Выделить всё
typedef struct {
int i : 1;
int j : 2;
int k : 3;
} BB __attribute__((bitband));
BB bb __attribute__((at(0x20000004));
void foo(void)
{
bb.i = 1;
}Re: STM32 новичку в ARM что к чему
uk8amk, способ полезный, но не удобный. мне бы узнать про стандартный тип _Bool.
Re: STM32 новичку в ARM что к чему
drakon, в одной uint8_t можно хранить 8 флагов. Для удобства создать битовые маски для каждого бита. Я делаю так:
Код: Выделить всё
#define BIT_FLAG1 ((uint8_t)0x01)
#define BIT_FLAG2 ((uint8_t)0x02)
#define BIT_FLAG3 ((uint8_t)0x04)
uint8_t FLAGS;
//утановка 0 бита
FLAGS |= BIT_FLAG1;
//сброс 1 бита
FLAGS &= ~BIT_FLAG2;
//проверка 2 бита
if (FLAGS & BIT_FLAG3) ..... ;
Иван Сусанин - первый полупроводник 
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: STM32 новичку в ARM что к чему
может лучше по взрослому работать с битовыми переменными:
http://eugenemcu.ru/publ/13-1-0-77
http://eugenemcu.ru/publ/13-1-0-77
Re: STM32 новичку в ARM что к чему
oleg110592, читал я это. неудобно и не какой кроссплатформенности. мне бы про _Bool узнать побольше.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: STM32 новичку в ARM что к чему
В стандарте C99 определён собственный тип логических данных _Bool.
Размер здесь:
http://www.keil.com/support/man/docs/ar ... bfcgfc.htm
Размер здесь:
http://www.keil.com/support/man/docs/ar ... bfcgfc.htm
Re: STM32 новичку в ARM что к чему
oleg110592, вот за это большее спасибо, сам найти не смог. а какой тогда толк с _Bool, если этот тип занимает как и char- 8bit?
-
The_D
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Пт июл 06, 2012 14:28:17
- Откуда: Россия. г.Смоленск
Re: STM32 новичку в ARM что к чему
Мне всегда было интересно, неужели в современных МК выпускаемых ST настолько мало памяти что вам жалко под переменные(у вас их наверное пара сотен) отвести полноценные 4 байта. МК 32 разрядные? Ну так пусть и переменные будут uint32. А вам 8 бит под тип bool жалко.
typedef enum{
true = (uint32) 0xFFFFFFFF, false = (uint32) 0x00000000,
} TBool;
Ужассс правда?
typedef enum{
true = (uint32) 0xFFFFFFFF, false = (uint32) 0x00000000,
} TBool;
Ужассс правда?
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: STM32 новичку в ARM что к чему
какой тогда толк с _Bool
Наверное удобно и наглядно когда функция возвращает bool значение:
Для флагов, наверное лучше использовать структуры, не забыть про это:
http://we.easyelectronics.ru/STM32/atom ... ex-m3.html
выше уже советовали
Наверное удобно и наглядно когда функция возвращает bool значение:
Код: Выделить всё
bool Compare ( uint32_t A, uint32_t B )
{
if(A == B) return true;
return false;
}
.....
if ( Compare( 4 , 7 ) == false ) bla-bla
http://we.easyelectronics.ru/STM32/atom ... ex-m3.html
выше уже советовали
Последний раз редактировалось oleg110592 Чт авг 08, 2013 12:20:58, всего редактировалось 2 раза.
- Neekeetos
- Держит паяльник хвостом
- Сообщения: 993
- Зарегистрирован: Пн сен 18, 2006 11:16:05
- Откуда: Тула
- Контактная информация:
Re: STM32 новичку в ARM что к чему
А мне кажется нету смысла усложнять, в си уже описан тип бул, он используется при сравнении и представляет собой обычный инт, если он равен нулю то false и если любое другое значение - true,oleg110592 писал(а): Наверное удобно и наглядно когда функция возвращает bool значение:
так что код по идее должен быть таким:
Код: Выделить всё
int Compare ( uint32_t A, uint32_t B )
{
return (A == B);
}
.....
if ( Compare() ) bla-blaИнформация по RLC mini находится >тут<
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: STM32 новичку в ARM что к чему
это было так, для большей наглядности
Код: Выделить всё
if(A == B) bla-bla;

