STM32 новичку в ARM что к чему
- Сообщения: 7052
- Зарегистрирован: Сб янв 28, 2006 22:47:24
a5021, Oxford, спасибо.
Астролябия-сама меряет, было бы что мерять!!!
- Реклама
Почему я не могу сделать так? Ругается и выдает две ошибки...
что переменная не объявлена и что ожидается выражение...
for (unsigned int j=1; j<0x0FFF; j++) // Ждем запуска резонатора
{
if((RCC->CR & RCC_CR_HSERDY ) != RCC_CR_HSERDY)
{
//j=0x1FFF;
break;
}
}
что переменная не объявлена и что ожидается выражение...
for (unsigned int j=1; j<0x0FFF; j++) // Ждем запуска резонатора
{
if((RCC->CR & RCC_CR_HSERDY ) != RCC_CR_HSERDY)
{
//j=0x1FFF;
break;
}
}
Станислав
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
Еще бы знать , как это сделать... )))
Добавлено after 2 minutes 3 seconds:
Все. Разобрался. В настройках проекта С99
Добавлено after 19 seconds:
Спасибо большое! Век живи, век учись.
Добавлено after 15 minutes 41 second:
Кстати, только что проверил работу CSS. Замкнул кварц послюнявленым пальцем. МК перешел на тактирование от HSI, даже после того, как при инициализации я его выключил. Светодиоды стали моргать медленнее. Но обратно не вернулся на HSE.
Таким образом у БлюПилл нет такого, чтобы опять возобновлялось тактирование, как на других МК, кто-то указывал выше. )))
Добавлено after 2 minutes 3 seconds:
Все. Разобрался. В настройках проекта С99
Добавлено after 19 seconds:
Спасибо большое! Век живи, век учись.
Добавлено after 15 minutes 41 second:
Кстати, только что проверил работу CSS. Замкнул кварц послюнявленым пальцем. МК перешел на тактирование от HSI, даже после того, как при инициализации я его выключил. Светодиоды стали моргать медленнее. Но обратно не вернулся на HSE.
Таким образом у БлюПилл нет такого, чтобы опять возобновлялось тактирование, как на других МК, кто-то указывал выше. )))
Станислав
СКАЗОЧНИК не переключайся на С99. Обьяви как положено в рамках ANSI C
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Реклама
Ну вот... (( Теперь другое советуют...
А как положено? Я читал, что в цикле ФОР можно задавать переменную сразу. Ну, вынесу я ее из цикла, как объявление переменной. А дальше? Я не совсем понимаю, как и что надо там сделать. Мне казалось, что все правильно. Я даже много раз перепроверил.
Добавлено after 41 second:
И в чем будет приемущество?
Добавлено after 1 minute 8 seconds:
Кстати, у меня галочка сейчас стоит на С99. А на ANSI C снята. Но она и была снята.
А как положено? Я читал, что в цикле ФОР можно задавать переменную сразу. Ну, вынесу я ее из цикла, как объявление переменной. А дальше? Я не совсем понимаю, как и что надо там сделать. Мне казалось, что все правильно. Я даже много раз перепроверил.
Добавлено after 41 second:
И в чем будет приемущество?
Добавлено after 1 minute 8 seconds:
Кстати, у меня галочка сейчас стоит на С99. А на ANSI C снята. Но она и была снята.
Станислав
По умолчанию в KEIL ANSI C стандарт языка, есть опция включить C99 расширение.
https://radiowolf.ru/2016/12/143/keil_%c2%b5vision_ide/
Галочка Strict ANSI C это строгий режим стандарта ANSI C
https://radiowolf.ru/2016/12/143/keil_%c2%b5vision_ide/
Галочка Strict ANSI C это строгий режим стандарта ANSI C
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
О. Прикольный сайт. ) Спасибо. Почитаю.
И все же по поводу стандарта тоже интересно. Если С99 позволяет это делать, а другие не позволяют. Но куча примеров в интернете не натолкнула меня на правильное использование (объявление) цикла с параметром...
И все же по поводу стандарта тоже интересно. Если С99 позволяет это делать, а другие не позволяют. Но куча примеров в интернете не натолкнула меня на правильное использование (объявление) цикла с параметром...
Станислав
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
С99 ни какое не расширение, а самый настоящий стандарт языка С, принятый 21 год назад взамен С89, которому больше трёх десятков лет! Стоит использовать последнюю доступную в компиляиоре версию языка. Последний стандарт на С - С18 принят совсем недавно.
И это я ещё молчу про С++, который вообще огонь!
Добавлено after 8 minutes 45 seconds:
СКАЗОЧНИК, всё верно у вас в цикле for. Счётчик цикла живёт только внутри цикла - это хорошо.
И это я ещё молчу про С++, который вообще огонь!
Добавлено after 8 minutes 45 seconds:
СКАЗОЧНИК, всё верно у вас в цикле for. Счётчик цикла живёт только внутри цикла - это хорошо.
C99 ни один компилятор не поддерживает полностью. Даже ваш православный GCC. Поэтому я сторонник ANSI C.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
[uquote="Oxford",url="/forum/viewtopic.php?p=3901134#p3901134"]Поэтому я сторонник ANSI C.[/uquote]
Наверное, и триграфы используете вместо неправославных { или #?
Наверное, и триграфы используете вместо неправославных { или #?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="Oxford",url="/forum/viewtopic.php?p=3901134#p3901134"]C99 ни один компилятор не поддерживает полностью. Даже ваш православный GCC.[/uquote]Это шутка юмора такая? GCC С18 с 8-й версии поддерживает, а уже 10-я на дворе.
Одно дело опубликовать стандарт, другое дело внедрить его поддержку в компиляторы. Повторяю GCC не полностью поддерживает C99. Тот же майкрософт в погоне за C++ забили на C99
А вот код только с ANSI C поддерживается всеми компиляторами. Реализован качественно и полностью на нем до сих пор программируют и это считается хорошим тоном.
Быдлокодить вы можете на чем угодно, это ваше право каким языком программировать.
К тому же учебного материала качественного по ANSI C больше
Просто не стаклкивались с багами приложений когда компилятор херню компилит либо не понимает что от него хотят
А вот код только с ANSI C поддерживается всеми компиляторами. Реализован качественно и полностью на нем до сих пор программируют и это считается хорошим тоном.
Быдлокодить вы можете на чем угодно, это ваше право каким языком программировать.
К тому же учебного материала качественного по ANSI C больше
Просто не стаклкивались с багами приложений когда компилятор херню компилит либо не понимает что от него хотят
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
Поддерживает, но не полностью. Еще бы он С99 не компилировал в 2020
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="Oxford",url="/forum/viewtopic.php?p=3901344#p3901344"]Поддерживает, но не полностью. Еще бы он С99 не компилировал в 2020[/uquote]
В С++, например, есть "export template" из стандарта 2003 года, но его поддерживает только один компилятор из второго эшелона, что теперь на С++ не писать?
Превью msvc уже C11/C17 полностью поддерживают, но в поддержке С99 действительно есть пробелы и т.к. подобная картина наблюдается в других компиляторах, то видимо в значительной степени дело в самом C99.
В С++, например, есть "export template" из стандарта 2003 года, но его поддерживает только один компилятор из второго эшелона, что теперь на С++ не писать?
Последний раз редактировалось Reflector Сб окт 03, 2020 23:44:31, всего редактировалось 1 раз.
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
А покажите, как на православной С-шечке на контроллере STM32F4 установить на ноге PA15 ноль?
- Сообщения: 7052
- Зарегистрирован: Сб янв 28, 2006 22:47:24
Вот чего спрошу - в STM32F303 старт, стоп, наки всяки и другое разное нужное для I2C железом формируются? Неужели свершилось, и не нужно в коде портянки километровые писать про то, что давно уже описано-переписано и в железе реализовано сто лет назад?
Астролябия-сама меряет, было бы что мерять!!!
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
Asmodey, а что в RM про это пишут?
ЗЫ: Моё IMHO. Новая реализация I2C от STM32 сложнее того что было в F1. При том что даёт больше автоматизации и, как говорят, меньше глючит. Но код для неё сложнее, кмк. Могу попозже кинуться примером кода.
ЗЫ: Моё IMHO. Новая реализация I2C от STM32 сложнее того что было в F1. При том что даёт больше автоматизации и, как говорят, меньше глючит. Но код для неё сложнее, кмк. Могу попозже кинуться примером кода.
- Сообщения: 7052
- Зарегистрирован: Сб янв 28, 2006 22:47:24
[uquote="VladislavS",url="/forum/viewtopic.php?p=3901413#p3901413"]Asmodey, а что в RM про это пишут?[/uquote]Скорее не пишут, чем пишут. Скажем, описания битов START и STOP я в RM не нашел. Сначала удивился, затем понял, что их там нет вовсе, а I2C интерфейс у F303 отличается от F0 и F1. Отличается лучшую сторону, имхо.
Ваш код я уже нашел на изиэлектроникс, спасибо. Правда, кой-какие непонятки возникли с обработкой ошибок, но это решаемо. А без контроля ошибок I2C уже заработал у меня и чего-то пишет в слейв устройство.
Ваш код я уже нашел на изиэлектроникс, спасибо. Правда, кой-какие непонятки возникли с обработкой ошибок, но это решаемо. А без контроля ошибок I2C уже заработал у меня и чего-то пишет в слейв устройство.
Астролябия-сама меряет, было бы что мерять!!!


