[Решено] Как кодировать чтение или написание 8 булавок одновременно?

Jwiggams
Чт, 8 ноября 2018 г., 4:48
Привет,

Я возился с STM32 на специальном дизайне платы для базового самосвоения/писателя EEPROM EEPROM. У меня были вещи отлично работали на подростках 2.0 ++ с 8 -битными регистрами, но у меня чертовски время, переносив дизайн на этот STM32.

Вот фрагмент рабочего кода из Teensy, это просто пишет один байт (что мне нужно от него):
void write_data(int address, uint8_t data) { PORTA = address & 0xFF; PORTB = (address >> 8) & 0xFF; PORTC = data; delay(1); PORTD &= ~(1 << 0); //pull /WR low delay(2); PORTD |= (1 << 0); //pull /WR high }

Flyboy74
Чт, 8 ноября 2018 г., 5:31
Сначала я замечаю, что ваши 2 бита кода, похоже, не выровняются PORTA = address & 0xFF; PORTB = (address >> 8) & 0xFF; PORTC = data;

Стивестронг
Чт, 8 ноября 2018 г. 8:21 утра
Вам может потребоваться установить выводы вывода для вывода.

Jwiggams
Чт, 8 ноября 2018 г., 17:38
[Flyboy74 - Чт, 8 ноября 2018 г., 5:31 утра] - Сначала я замечаю, что ваши 2 бита кода, похоже, не выровняются
Ты прав, я пытался удалить его раньше, но это не изменило ситуации. Поэтому я подумал, что опубликую оригинальный код, который я пытался портить, что, как вы говорите, на самом деле не имеет смысла. Так что, если у меня есть это как:
GPIOA->regs->ODR = address;

Flyboy74
Чт, 8 ноября 2018 г., 8:04 вечера
Хорошо, я не использую ни одного из ядер Ardunio и не пишу все свои собственные библиотеки, но обычно использую макросы & витрины в поставленном заголовке от ST.

Итак, для платы STM32F407VET я использую заголовок "STM32F4XX.час"

Насколько я знаю, у вас есть правильная структура для Ardunio Core GPIOA->regs->ODR = address;

Rogerclark
Чт, 8 ноября 2018 г., 8:11 вечера
Тема была перенесена на не по теме, так как это не имеет ничего общего с Ардуино и т. Д .

Flyboy74
Чт, 8 ноября 2018 г., 20:13
Вы также знаете, что у многих из STM32 есть аппаратное периферийное устройство FSMC FRO для Ram для параллельно, поэтому обычно вам не нужно писать свой собственный бит программного обеспечения, как вы??

Jwiggams
Чт, 8 ноября 2018 г., 21:04
@ Rogerclark, извините, я подумал, как я использовал Arduino, это пойдет сюда. Извиняюсь.

@ Flyboy74 Я использую свою собственную плату, нет других устройств, использующих GPIO, кроме тех, которые я использую. Здесь нет дополнительных периферийных устройств.

О FSMC я не знал об этом, но я бы предположил, что это потребует полного повторного записи моего кода. Я не ищу скорость, просто это работает. Опять же, если бы был способ сделать то же самое, но с DigitalWrite я был бы в порядке с этим.

Jwiggams
Чт, 8 ноября 2018 г., 22:27
Так что мне удалось заставить вещи работать, но даже для моих потребностей это слишком медленно...Хотя я сказал, что скорость не была проблемой :рулон:
for (int i = datapins[PC0]; i <= datapins[PC7]; i += 1){ //works, but slowly digitalWrite(i, data & 1); data = data >> 1; }

Flyboy74
Пт, 09 ноября 2018 г., 2:06
Что STM32 MCU R U использует??

Функция DigitalWrite () просто записывает в эти регистры, как и U R, но он читает 32 -битный регистр, а затем меняет 1 бит, затем записывает 32Bits обратно в реестр.

Я только когда -либо использовал DigitalWrite () в своих первых нескольких программах, которые я написал, теперь я использую написание непосредственно в регистрах, чтобы выполнить все мои операции GPIO. Я также написал 8-битный и 16-битный программный бит, как вы пытаетесь сделать, и в последнее время с использованием периферийного устройства HW FSMC.

Вот мой код бита для 16-битного написания на экран на STM32F407VET. Я использую заголовок ST, а не макросы Ardunio #include "stm32f4xx.h" #define RS GPIO_ODR_ODR_0 #define WR GPIO_ODR_ODR_1 #define CS GPIO_ODR_ODR_2 #define RST GPIO_ODR_ODR_3 //used for count down in Delay __IO uint32_t TimmingDelay; void SysTick_Handler(void) { if(TimmingDelay !=0) { TimmingDelay --; } } void Delay(__IO uint32_t time) { TimmingDelay = time; while(TimmingDelay !=0); } void Pin_setup(void){ //enable port D and E RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN | RCC_AHB1ENR_GPIOEEN; //Port E is used for parallel data pins //set a port E pins to output. GPIOE->MODER = 0x55555555; //set all port E pins to push pull GPIOE->OTYPER = 0; //set all port E pins to 100MHz speed GPIOE->OSPEEDR =0xFFFFFFFF; //Port D is used for RS, WR, CS, RST //set needed pins as ouput GPIOD->MODER |= GPIO_MODER_MODER0_0 | GPIO_MODER_MODER1_0 | GPIO_MODER_MODER2_0 | GPIO_MODER_MODER3_0; //set needed pin to push pull GPIOD->OTYPER = 0; //set needed pins to 100MHZ; GPIOD->OSPEEDR |= 0x000000FF; GPIOD->ODR |= RS | WR | CS | RST; } void TFT_write_cmd(uint16_t command){ GPIOD->ODR &= ~RS; GPIOD->ODR &= ~CS; GPIOD->ODR &= ~WR; GPIOE->ODR = command; GPIOD->ODR |= WR; GPIOD->ODR |= CS; GPIOD->ODR |= RS; } void TFT_write_data(uint16_t data){ GPIOD->ODR &= ~CS; GPIOD->ODR &= ~WR; GPIOE->ODR = data; GPIOD->ODR |= WR; GPIOD->ODR |= CS; } void LCD_setup (void){ //hardware reset GPIOD->ODR &= ~RST; Delay(120); GPIOD->ODR |= RST; Delay(120); //software reset TFT_write_cmd(0x01); Delay(120); //sleep out TFT_write_cmd(0x11); Delay(120); //Normal Display Mode On) TFT_write_cmd(0x13); //Display On TFT_write_cmd(0x29); //CASET (Column Address Set) TFT_write_cmd(0x2A); TFT_write_data (0000); TFT_write_data (320); //PASET (Page Address Set) TFT_write_cmd(0x2B); TFT_write_data (0000); TFT_write_data (480); //Exit_idle_mode TFT_write_cmd(0x38); //Set_pixel_format RGR565 16 bit TFT_write_cmd(0x3A); TFT_write_data(0b01010101); //RAMWR (Memory Write) TFT_write_cmd(0x2C); } void main(void){ SysTick_Config(SystemCoreClock/1000); Pin_setup(); LCD_setup(); // Infinite loop while (1) { //write some redish data to the screen TFT_write_data(0xff00); } }

Jwiggams
Пт, 09 ноября 2018 г., 3:14
[Flyboy74 - Пт, 09 ноября 2018 г. 2:06 утра] - Что STM32 MCU R U использует??

Функция DigitalWrite () просто записывает в эти регистры, как и U R, но он читает 32 -битный регистр, а затем меняет 1 бит, затем записывает 32Bits обратно в реестр.

Я только когда -либо использовал DigitalWrite () в своих первых нескольких программах, которые я написал, теперь я использую написание непосредственно в регистрах, чтобы выполнить все мои операции GPIO. Я также написал 8-битный и 16-битный программный бит, как вы пытаетесь сделать, и в последнее время с использованием периферийного устройства HW FSMC.

Я использую STM32F103R. Я действительно не думаю, что это важно здесь, так как эта проблема не зависит от того, что я использую - это просто связан с кодом.

Я знаю о Digitalwrite и о том, как это работает, и я знаю, что это медленно. Я думаю, что мы теряем сосредоточенность на том, что был мой оригинальный вопрос, так что здесь он снова настолько ясен, насколько я могу сделать:

Почему я не могу использовать GPIOC->regs->ODR = data;

Flyboy74
Пт, 09 ноября 2018 г., 3:45 утра
если GPIOC->regs->ODR = data;

Jwiggams
Пт 09 ноября 2018 г., 4:15 утра
Если я делаю только один булавку за раз, он работает нормально. И для чтения функции IDR также отлично работает, используя
byte read_byte = GPIOC->regs->IDR;

Flyboy74
Пт, 09 ноября 2018 г., 4:57 утра
ОК, мой пост на предыдущей странице в самой нижней части, который я использовал для 16-битного битового развязки на экране TFT. Он работал нормально, но я использовал системную рабочую ide, поэтому он использует компилятор GCC C/C ++, не уверен, какой компилятор использует Ardunio.

Вы можете попробовать написать целые 32Bits и посмотреть, имеет ли это значение, нижние 16 бит устанавливают 16 булавок и верхние 16 бит R не использовались. Но я не могу понять, почему можно писать по 1 булавки за раз, но когда вы пытаетесь писать более 1 штук за раз, это не работает, это не имеет смысла, так как STM32 может написать только 32 бита в регистрах Таким образом, чтобы написать этот 1 пин -код, он также должен был написать 0 на все остальные 31 бита, так почему он не может написать 1 на другие биты??

Единственная возможная проблема может быть, если режим для всех контактов не установлен правильно (все контакты, установленные для вывода, pushpul)

LSMOD
Чт, 03 января 2019 г. 11:13
[Flyboy74 - Пт, 09 ноября 2018 г. 2:06 утра] - Что STM32 MCU R U использует??

Вот мой код бита для 16-битного написания на экран на STM32F407VET. Я использую заголовок ST, а не макросы Ardunio #include "stm32f4xx.h" #define RS GPIO_ODR_ODR_0 #define WR GPIO_ODR_ODR_1 #define CS GPIO_ODR_ODR_2 #define RST GPIO_ODR_ODR_3 //used for count down in Delay __IO uint32_t TimmingDelay; void SysTick_Handler(void) { if(TimmingDelay !=0) { TimmingDelay --; } } void Delay(__IO uint32_t time) { TimmingDelay = time; while(TimmingDelay !=0); } void Pin_setup(void){ //enable port D and E RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN | RCC_AHB1ENR_GPIOEEN; //Port E is used for parallel data pins //set a port E pins to output. GPIOE->MODER = 0x55555555; //set all port E pins to push pull GPIOE->OTYPER = 0; //set all port E pins to 100MHz speed GPIOE->OSPEEDR =0xFFFFFFFF; //Port D is used for RS, WR, CS, RST //set needed pins as ouput GPIOD->MODER |= GPIO_MODER_MODER0_0 | GPIO_MODER_MODER1_0 | GPIO_MODER_MODER2_0 | GPIO_MODER_MODER3_0; //set needed pin to push pull GPIOD->OTYPER = 0; //set needed pins to 100MHZ; GPIOD->OSPEEDR |= 0x000000FF; GPIOD->ODR |= RS | WR | CS | RST; } void TFT_write_cmd(uint16_t command){ GPIOD->ODR &= ~RS; GPIOD->ODR &= ~CS; GPIOD->ODR &= ~WR; GPIOE->ODR = command; GPIOD->ODR |= WR; GPIOD->ODR |= CS; GPIOD->ODR |= RS; } void TFT_write_data(uint16_t data){ GPIOD->ODR &= ~CS; GPIOD->ODR &= ~WR; GPIOE->ODR = data; GPIOD->ODR |= WR; GPIOD->ODR |= CS; } void LCD_setup (void){ //hardware reset GPIOD->ODR &= ~RST; Delay(120); GPIOD->ODR |= RST; Delay(120); //software reset TFT_write_cmd(0x01); Delay(120); //sleep out TFT_write_cmd(0x11); Delay(120); //Normal Display Mode On) TFT_write_cmd(0x13); //Display On TFT_write_cmd(0x29); //CASET (Column Address Set) TFT_write_cmd(0x2A); TFT_write_data (0000); TFT_write_data (320); //PASET (Page Address Set) TFT_write_cmd(0x2B); TFT_write_data (0000); TFT_write_data (480); //Exit_idle_mode TFT_write_cmd(0x38); //Set_pixel_format RGR565 16 bit TFT_write_cmd(0x3A); TFT_write_data(0b01010101); //RAMWR (Memory Write) TFT_write_cmd(0x2C); } void main(void){ SysTick_Config(SystemCoreClock/1000); Pin_setup(); LCD_setup(); // Infinite loop while (1) { //write some redish data to the screen TFT_write_data(0xff00); } }

fpistm
Чт, 03 января 2019 г. 14:00
Вы читаете справочное руководство?
https: // www.ул.com/resource/en/referenc ... 171190.PDF

В основном §9.2 Регистры GPIO.

LSMOD
Пт, 04 января 2019 12:20
Спасибо - это идеальное техническое описание проблемы.

Но нет примера кода! :плакать:
Особенно не как целый пример для использования в среде STM32Duino. ;)

LSMOD
Ср. 09 января 2019 г. 18:28
Кажется, я должен ответить на каждый вопрос сам. :ржу не могу:

Я нашел это хорошее описание здесь: https: // Gist.GitHub.com/iwalpola/6c36c9 ... 0A118571CA

Нелегко рассчитать биты ...
Интересно, что никто не кодировал что -то для этого?

Рик Кимбалл
Ср. 09 января 2019 г. 18:48
[LSMOD - Ср. 09 января 2019 г. 18:28] - Кажется, я должен ответить на каждый вопрос сам. :ржу не могу:
Поздравляю, вы наконец -то понимаете, что значит использовать чипы STM32 с Arduino :)

Рик Кимбалл
Ср. 09 января 2019 г. 18:54
[LSMOD - Ср. 09 января 2019 г. 18:28] - Я нашел это хорошее описание здесь: https: // Gist.GitHub.com/iwalpola/6c36c9 ... 0A118571CA
@flyboy74 ответил, как написать здесь:
ViewTopic.PHP?F = 45&T = 4301&P = 52270#P50761

@jwiggams ответил, как прочитать здесь:
ViewTopic.PHP?F = 45&T = 4301&P = 52270#P50764

Есть ответы на каждый вопрос о STM32F1 и Arduino на этом сайте. Вам нужно изучить, используя сайт: STM32Duino.Функция COM в Google:

http: // lmgtfy.ком/?Q = сайт%3ASTM32DUINO.com+odr

Вторая ссылка 3 года назад отвечает на ваш вопрос о чтении и написании 16 булавок одновременно.
https: // www.STM32duino.com/viewtopic.PHP?t = 1220

LSMOD
Пт 11 января 2019 12:33
Мне жаль это сказать, но до сих пор я вижу, что основные проблемы не решены.
1. Стандартные библиотеки, такие как доступ к ЖК-дисплею, не работают
2. Порты можно получить только с одним выводом
3. Нет возможности для простого доступа к шлам или байту
4. Существует большая стандартная ядро ​​с составленными функциями неопределенных функций, которое потребляет много вспышки и оперативной памяти, и лишь некоторые особые проблемы, такие как доступ UART, решаются с ним.

В чем разница в STM32DUINO в других средах разработки, где каждая проблема должна решать программист?

Mrburnette
Пт 11 января 2019 г. 13:16
[LSMOD - Пт 11 января 2019 12:33] - ...
В чем разница в STM32DUINO в других средах разработки, где каждая проблема должна решать программист?
Большинство других среде среды не экспериментальный.

Основной порт STM для Arduino основан на их профессиональном ядре, но IMO, Arduinoide не будет профессиональным инструментом; По сути, он является препроцессором исходного кода к конечному CLI для компиляции+ссылка.

Что бы ни называли ядра и инструменты, программист как субъекта несет полную ответственность за разрешение конфликтов и ошибок с Arduino. Нет никаких причин, по которым окончательная сборка не может быть профессионального качества, но путь к получению сброшена с пуленой немного скалистой.

Мнение:
Если кто -то расстроится (непрерывно) с помощью IDE, грубых библиотек или архитектуры чипов STM32, тогда кто -то не оказывает себе никаких услуг, работая в окружающей среде... Вернитесь в 8-битную архитектуру AVR и узнайте там. STM32duino был никогда Предназначен для новичка, и «простой» не была линейкой дизайна.

Луча

LSMOD
Пт 11 января 2019 13:41
Да - я согласен с твоим мнением.
В это время STM32Duino не для меня.
Это экспериментально и преимущества Arduino не готовы к использованию.
Но было бы неплохо, когда это будет в будущем ...

Сейчас попробую настройку из книги Уоррена Гея и попробую работать с LiboPencm3.

Стивестронг
Пт 11 января 2019 г. 14:19
Ну, я не могу поделиться твоим мнением.
Я не знаю, в чем именно твоя проблема, но либеральные либера 8/16.

Но я поделюсь мнением Рэя, возвращаюсь к 8 -битным AVR, если не желаю изучать что -то новое.

LSMOD
Пт 11 января 2019 г. 14:41
[Стивестронг - Пт 11 января 2019 г. 14:19] - Ну, я не могу поделиться твоим мнением.
Я не знаю, в чем именно твоя проблема, но либеральные либера 8/16.

Но я поделюсь мнением Рэя, возвращаюсь к 8 -битным AVR, если не желаю изучать что -то новое.
Как я написал здесь https: // stm32duino.com/viewtopic.PHP?f = ... = 30#p52063 Мои ожидания - это простое начало основных функций и использование существующих библиотек.

Моя проблема в том, что все, кроме программы Blink, до сих пор не работало. :(
Поэтому я мог только узнать, что STM32Duino не является легким и рабочее начало для использования контроллеров STM32. ;)
У меня не было шансов узнать что -то о контроллере STM32, потому что ничего не работает - просто программа Blink и вывод UART.

Когда вы говорите, вы можете использовать обычный стандартный ЖК -дисплей с опубликованным источником - поздравляю !
Я могу только видеть, что на линии нет сигнала, поэтому неудивительно, что ЖК -дисплей мертв.

Это правда, что Arduino для AVR можно просто скачать, распаковывать и все работает.
Здесь я должен искать и понять, почему этот Arduino не работает. :(
Это чистое разочарование и не весело для меня.

Но спасибо вам все, что вы пытались мне помочь!

Стивестронг
Пт 11 января 2019 14:58
[LSMOD - Пт 11 января 2019 г. 14:41] - Поэтому я мог только узнать, что STM32Duino не является легким и рабочее начало для использования контроллеров STM32.
Согласен, это проблема. Любой, кто говорит, что шаг формирует AVR 8 -бит в STM 32 бит, легко лжет.
[LSMOD - Пт 11 января 2019 г. 14:41] - У меня не было шансов узнать что -то о контроллере STM32, потому что ничего не работает - просто программа Blink и вывод UART.
Поздравляю, у вас есть работающий UART!
Мой первый опыт был еще хуже: даже UART не работал для 9 -битных данных и паритета, мне пришлось отлаживать и выяснить, что он никогда не будет работать, так как не поддерживается аппаратное обеспечение.
Затем у меня были проблемы с SD -картами и SPI, я инвестировал много времени отладки и решающую проблему.

Вы, как поздний пользователь, вы можете получить выгоду от всей предыдущей работы, выполненной несколькими людьми, вкладывающими в свободное время в открытый исходный код.
Вам просто нужно иметь терпение, время и будет.

То, что я сделал, это начало с того, что работает, добавление строки по новым коду, и тестирование.
Я думаю, что это правильный путь, который приводит к рабочему программному обеспечению, вместо того, чтобы собирать несколько (неизвестных и не понятых) библиотек в одном эскизе и спрашивать, почему оно не работает.

На этом этапе я бы скорее рассмотрел ваше отношение, которое, кажется, ожидает все, не инвестируя что -то.

Беннебой
Пт 11 января 2019 г. 15:02
[LSMOD - Пт 11 января 2019 г. 14:41] - Моя проблема в том, что все, кроме программы Blink, до сих пор не работало. :(
Хм, я думаю, что это вводит в заблуждение, библиотеки _ont_, и будут работать почти _all_ примеры (из меню примеров Arduino IDE), некоторые из которых с очень незначительными изменениями (например, A0-Ax не отображаются, но это очень простая замена PIN-кода в коде. ).

Я думаю, что проблема, с которой вы столкнулись.

Мир STM32 большой, этот угол STM32Duino действительно довольно маленький (но хорошо сформирован), и вы не можете просто отбросить код из других мест с ожиданием, что он будет работать.

Точно же самое относится и к AVR, но, безусловно, самый высокий объем активности на AVR против Arduino, поэтому большинство образцов кода работа, кажется,.

LSMOD
Пт 11 января 2019 г. 15:09
[Стивестронг - Пт 11 января 2019 г. 14:58] - Вы, как поздний пользователь, вы можете получить выгоду от всей предыдущей работы, выполненной несколькими людьми, вкладывающими в свободное время в открытый исходный код.
Вам просто нужно иметь терпение, время и будет.
Я знаю, что я недостаточно терпения, и для меня недостаточно поздно. :ржу не могу:

Когда я должен снова сделать каждый жесткий шаг, например, чтобы получить ЖК-дисплей, как в AVR-GCC, тогда я не вижу преимущества использования Arduino Framework.
Тогда я могу лучше работать прямо с чем -то вроде LiboPencm3, потому что у меня полный контроль над включенными вещами.

LSMOD
Пт 11 января 2019 г. 15:13
[Беннебой - Пт 11 января 2019 г. 15:02] - Я думаю, что проблема, с которой вы столкнулись.
Это была моя первая идея - поэтому я проверил путь используемых библиотек, которые используются.
Как видите, всегда были библиотеки STM32Duino, которые используются.
https: // stm32duino.com/viewtopic.PHP?F = 28&T = 4500#P52248

Беннебой
Пт 11 января 2019 г. 16:08
Многие из встроенных библиотек были написаны, когда ядро ​​было намного моложе, по большей части я склонен идти с современными либерациями от менеджера библиотеки IDE, почти все эти дни имеют поддержку STM32/Teensy/ESP.

Я не могу комментировать LiquidCrystal, потому что я использую их только в I2C, используя альтернативную библиотеку (которая от Arduino Library Manager).

LSMOD
Сб 12 января 2019 г. 9:36 утра
[Стивестронг - Пт 11 января 2019 г. 14:19] - Я не знаю, в чем именно твоя проблема, но либеральные либера 8/16.
Есть последняя идея, чтобы узнать, что я делаю неправильно. 8-)

Когда вы говорите, что это работает для вас, тогда, пожалуйста, составьте мой код и пришлите мне .эльф и .Файл корзины.
(Я отправляю свой адрес электронной почты через PN)
https: // stm32duino.com/viewtopic.PHP?F = 28&T = 4500#P52248

Тогда я прошучиваю и посмотрим, будет ли это работать на моем оборудовании.
Когда он работает, я могу сравнить скомпилированный выход или попробовать полную новую установку.

Может быть, вы будете использовать версию с 4 -битной автобусом: LiquidCrystal lcd(PB4, PB5, PA4, PA5, PA6, PA7);

Стивестронг
Сб 12 января 2019 г. 10:08
Извините, но я не думаю, что это имеет большой смысл, потому что у меня нет такого оборудования, поэтому я не буду этого делать.

Если у вас есть проблемы с компиляцией, затем опубликуйте сообщения об ошибке/предупреждении из Arduno IDE. Даже если я использую другие IDE, но я не оказываю им поддержки.

Если HW не работает для вас, попробуйте изменить некоторую конфигурацию PIN -кода (PB4 может быть зарезервирован для JTAG в зависимости от метода загрузки, найдите форум для PB3).

РЕДАКТИРОВАТЬ
Как простой тест, чтобы увидеть, работает ли GPIO. В этом случае не настраивайте LED_BUILTIN (PC13) и не устанавливайте его в режим ввода.

LSMOD
Сб 12 января 2019 г. 10:12
О нет - вы написали, что он работает для вас "очень хорошо" и "очень быстро". ;)

На моей стороне нет проблем с компиляцией - код просто не работает! 8-)

Но вам не нужно аппаратное обеспечение - просто составьте его с вашей средой, где все должно работать для STM32F103C8.
Тогда мы увидим причину, по которой это не работает ...

Стивестронг
Сб 12 января 2019 г. 10:19
Это то, что я написал:
[Стивестронг - Пт 11 января 2019 г. 14:19] - Я не знаю, в чем именно твоя проблема, но либеральные либера 8/16.
У меня есть оборудование для этих либеров.
Но приложение использует Liquidlcd, который не использует ни одного из 8/16 -битных параллельных или SPI lib.

Хорошо, я делаю это для вас один раз для вашего удобства, но не больше.
Вот мой выход сборки для Bluepill, взятого здесь: https: // stm32duino.com/viewtopic.PHP?F = 28&T = 4500#P52248
Загрузите со Stlink. Удалите финал .текст.

Кроме того, проверьте мои предложения, опубликованные в моем предыдущем посте.

LSMOD
Сб 12 января 2019 г. 10:28
Не волнуйся - я не хочу тебя вымогать. :рулон: :ржу не могу:

Зондирование ... сделанный.

Результат: Это точно то же самое!
Светодиод мигает - так что код работает, но в любой строке нет сигнала.

Стивестронг
Сб 12 января 2019 г. 10:29
Что касается PB3 / PB4, может потребоваться вызвать эту функцию в настройке, чтобы выпустить их для использования в качестве GPIO: enableDebugPorts(); // if you call disableDebugPort() then upload with STlink will not work

Стивестронг
Сб 12 января 2019 г. 10:47
[LSMOD - Сб 12 января 2019 г. 10:28] - Результат: Это точно то же самое!
Светодиод мигает - так что код работает, но в любой строке нет сигнала.
Извините, но я не могу поддержать вас дальше, кто -то из тех, кто угас, оборудование должно прокомментировать.
Вы пробовали мои предложения?

LSMOD
Сб 12 января 2019 г. 10:48
[Стивестронг - Сб 12 января 2019 г. 10:29] - Что касается PB3 / PB4, может потребоваться вызвать эту функцию в настройке, чтобы выпустить их для использования в качестве GPIO: enableDebugPorts(); // if you call disableDebugPort() then upload with STlink will not work

Стивестронг
Сб 12 января 2019 11:22
Хорошо, ты сделал меня любопытным и проверил булавки, если они переключаются.
Ну, за исключением PB5, они не.
Итак, я сейчас исследую проблему.

Стивестронг
Сб 12 января 2019 12:35
Я виновата в том, что ранее я проверял только несколько булавок, и эскиз использует в основном цикле двух команд, которые отличаются только за один бит, NR 2.
Теперь мои графики с прицелом показывают, что все булавки на самом деле переключаются, кроме PB4.
Если вы вставляете в настройку: enableDebugPorts();

Беннебой
Сб 12 января 2019 г. 13:53
Если это код, упоминаемый -> https: // stm32duino.com/viewtopic.PHP?P = 52267#P52267 Если у OP есть кнопка, подключенная к PB8, то не будет много, OP заявляет, что он использует чертежи.

LSMOD
Сб 12 января 2019 г. 13:54
[Стивестронг - Сб 12 января 2019 12:35] - Я виновата в том, что ранее я проверял только несколько булавок, и эскиз использует в основном цикле двух команд, которые отличаются только за один бит, NR 2.
Теперь мои графики с прицелом показывают, что все булавки на самом деле переключаются, кроме PB4.
Если вы вставляете в настройку: enableDebugPorts();

Стивестронг
Сб 12 января 2019 г. 14:21
PB3, PB4:
STM32_DBG_PORT_PINS.JPG
STM32_DBG_PORT_PINS.JPG (32.62 киб) просмотрено 400 раз

LSMOD
Сб 12 января 2019 г. 15:05
[Стивестронг - Сб 12 января 2019 г. 14:21] - PB3, PB4:
STM32_DBG_PORT_PINS.JPG

Вызов вышеуказанной функции делает PB3/PB4 доступным в виде GPIOS.

Что касается размера корзины, не могли бы вы опубликовать (по крайней мере, часть) вывод сборки, чтобы увидеть, какие параметры передаются в компилятор?
USB_SERIAL определяется в досках.TXT для загрузки со Stlink, но он не определен для серийной загрузки.
Поэтому я предполагаю, что в моем случае это USB -серийный код, который делает его больше, но я хотел бы быть уверенным.
Так что это глупая проблема новичка ... : oops:
И теперь я должен пересмотреть свое мнение для STM32duino и продолжить реальную проблему этой ветки и узнать, как кодировать полный байт доступа к портам GPIO. 8-)

Вот полный вывод отладки от компиляции:
/srv/bin/arduino-1.8.8/arduino-builder -dump-prefs -logger=machine -hardware /srv/bin/arduino-1.8.8/hardware -hardware /home/me/.arduino15/packages -tools /srv/bin/arduino-1.8.8/tools-builder -tools /srv/bin/arduino-1.8.8/hardware/tools/avr -tools /home/me/.arduino15/packages -built-in-libraries /srv/bin/arduino-1.8.8/libraries -libraries /win/AVR-GCC/Arduino/libraries -fqbn=stm32duino:STM32F1:genericSTM32F103C:device_variant=STM32F103C8,upload_method=serialMethod,cpu_speed=speed_72mhz,opt=osstd -ide-version=10808 -build-path /tmp/arduino_build_597151 -warnings=none -build-cache /tmp/arduino_cache_704300 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.stm32tools.path=/home/me/.arduino15/packages/stm32duino/tools/stm32tools/2018.12.3 -prefs=runtime.tools.stm32tools-2018.12.3.path=/home/me/.arduino15/packages/stm32duino/tools/stm32tools/2018.12.3 -prefs=runtime.tools.arm-none-eabi-gcc.path=/home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1 -prefs=runtime.tools.arm-none-eabi-gcc-4.8.3-2014q1.path=/home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1 -verbose /win/AVR-GCC/Arduino/LCD-Test/LCD-Test.ino /srv/bin/arduino-1.8.8/arduino-builder -compile -logger=machine -hardware /srv/bin/arduino-1.8.8/hardware -hardware /home/me/.arduino15/packages -tools /srv/bin/arduino-1.8.8/tools-builder -tools /srv/bin/arduino-1.8.8/hardware/tools/avr -tools /home/me/.arduino15/packages -built-in-libraries /srv/bin/arduino-1.8.8/libraries -libraries /win/AVR-GCC/Arduino/libraries -fqbn=stm32duino:STM32F1:genericSTM32F103C:device_variant=STM32F103C8,upload_method=serialMethod,cpu_speed=speed_72mhz,opt=osstd -ide-version=10808 -build-path /tmp/arduino_build_597151 -warnings=none -build-cache /tmp/arduino_cache_704300 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.stm32tools.path=/home/me/.arduino15/packages/stm32duino/tools/stm32tools/2018.12.3 -prefs=runtime.tools.stm32tools-2018.12.3.path=/home/me/.arduino15/packages/stm32duino/tools/stm32tools/2018.12.3 -prefs=runtime.tools.arm-none-eabi-gcc.path=/home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1 -prefs=runtime.tools.arm-none-eabi-gcc-4.8.3-2014q1.path=/home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1 -verbose /win/AVR-GCC/Arduino/LCD-Test/LCD-Test.ino Using board 'genericSTM32F103C' from platform in folder: /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3 Using core 'maple' from platform in folder: /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3 Detecting libraries used... /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c /tmp/arduino_build_597151/sketch/LCD-Test.ino.cpp -o /dev/null /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/libraries/LiquidCrystal /tmp/arduino_build_597151/sketch/LCD-Test.ino.cpp -o /dev/null /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/libraries/LiquidCrystal /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/libraries/LiquidCrystal/LiquidCrystal.cpp -o /dev/null Generating function prototypes... /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/libraries/LiquidCrystal /tmp/arduino_build_597151/sketch/LCD-Test.ino.cpp -o /tmp/arduino_build_597151/preproc/ctags_target_for_gcc_minus_e.cpp /srv/bin/arduino-1.8.8/tools-builder/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /tmp/arduino_build_597151/preproc/ctags_target_for_gcc_minus_e.cpp Sketch wird kompiliert... /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/libraries/LiquidCrystal /tmp/arduino_build_597151/sketch/LCD-Test.ino.cpp -o /tmp/arduino_build_597151/sketch/LCD-Test.ino.cpp.o Compiling libraries... Compiling library "LiquidCrystal" /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/libraries/LiquidCrystal /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/libraries/LiquidCrystal/LiquidCrystal.cpp -o /tmp/arduino_build_597151/libraries/LiquidCrystal/LiquidCrystal.cpp.o Compiling core... /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-gcc -c -g -x assembler-with-cpp -MMD -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c/wirish/start.S -o /tmp/arduino_build_597151/core/wirish/start.S.o /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-gcc -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c/wirish/start_c.c -o /tmp/arduino_build_597151/core/wirish/start_c.c.o /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-gcc -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c/wirish/syscalls.c -o /tmp/arduino_build_597151/core/wirish/syscalls.c.o /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c/board.cpp -o /tmp/arduino_build_597151/core/board.cpp.o /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c/wirish/boards.cpp -o /tmp/arduino_build_597151/core/wirish/boards.cpp.o /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOC -DERROR_LED_PIN=13 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10808 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/stm32f1/include -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/stm32f1 -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/system/libmaple/usb/usb_lib -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/cores/maple -I/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c/wirish/boards_setup.cpp -o /tmp/arduino_build_597151/core/wirish/boards_setup.cpp.o Using precompiled core: /tmp/arduino_cache_704300/core/core_11dd8c8e52a7a191bcf2e2785ef7f974.a Linking everything together... /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++ -Os -Wl,--gc-sections -mcpu=cortex-m3 -T/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c/ld/jtag_c8.ld -Wl,-Map,/tmp/arduino_build_597151/LCD-Test.ino.map -L/home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/variants/generic_stm32f103c/ld -o /tmp/arduino_build_597151/LCD-Test.ino.elf -L/tmp/arduino_build_597151 -lm -lgcc -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group /tmp/arduino_build_597151/sketch/LCD-Test.ino.cpp.o /tmp/arduino_build_597151/libraries/LiquidCrystal/LiquidCrystal.cpp.o /tmp/arduino_build_597151/core/board.cpp.o /tmp/arduino_build_597151/core/wirish/boards.cpp.o /tmp/arduino_build_597151/core/wirish/boards_setup.cpp.o /tmp/arduino_build_597151/core/wirish/start.S.o /tmp/arduino_build_597151/core/wirish/start_c.c.o /tmp/arduino_build_597151/core/wirish/syscalls.c.o /tmp/arduino_cache_704300/core/core_11dd8c8e52a7a191bcf2e2785ef7f974.a -Wl,--end-group /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-objcopy -O binary /tmp/arduino_build_597151/LCD-Test.ino.elf /tmp/arduino_build_597151/LCD-Test.ino.bin Mehrere Bibliotheken wurden für "LiquidCrystal.h" gefunden Benutzt: /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/libraries/LiquidCrystal Nicht benutzt: /srv/bin/arduino-1.8.8/libraries/Newliquidcrystal Nicht benutzt: /srv/bin/arduino-1.8.8/libraries/LiquidCrystal Bibliothek LiquidCrystal im Ordner: /home/me/.arduino15/packages/stm32duino/hardware/STM32F1/2018.12.3/libraries/LiquidCrystal (legacy) wird verwendet /home/me/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-size -A /tmp/arduino_build_597151/LCD-Test.ino.elf Der Sketch verwendet 13720 Bytes (20%) des Programmspeicherplatzes. Das Maximum sind 65536 Bytes. Globale Variablen verwenden 2488 Bytes (12%) des dynamischen Speichers, 17992 Bytes für lokale Variablen verbleiben. Das Maximum sind 20480 Bytes.

Стивестронг
Сб 12 января 2019 г. 15:41
Вы действительно должны прочитать «Библию» (справочное руководство RM0008).

Вам понадобится, чтобы понять доступ Gipo.
ViewTopic.PHP?f = 3&t = 3763&P = 46320
Установить/сбросить только некоторые из битов: ищите BSRR.

LSMOD
Сб 12 января 2019 г. 15:51
Чтение всей Библии - одна из проблем - распознавание ее другой. : Geek:

Для доступа к GPIO я вижу больше проблем в инициализации.
Это только режим контактов (вход, вывод) и сигнал, который должен быть установлен?
Что касается часов GPIO - это установлено со стандартной инициализацией для всех портов?

Стивестронг
Сб 12 января 2019 г. 16:20
Часы инициализируются ядром перед тем, как приземлиться в настройке.

Здесь несколько дополнительных указателей, как установить режим PIN: https: // github.com/stevstrong/adafruit_ ... H#L98-L103
и как написать значение: https: // github.com/stevstrong/adafruit_ ... M32.H#L118

Mrburnette
Сб 12 января 2019 г. 9:26 вечера
[LSMOD - Сб 12 января 2019 г. 15:51] - Чтение всей Библии - одна из проблем - распознавание ее другой. : Geek:

Для доступа к GPIO я вижу больше проблем в инициализации.
Это только режим контактов (вход, вывод) и сигнал, который должен быть установлен?
Что касается часов GPIO - это установлено со стандартной инициализацией для всех портов?
На архитектуре STM32 есть много материалов, немного бесплатно: https: // www.ул.com/content/st_com/en/su ... книги.HTML

На самом деле, я бы предпочел, чтобы вы просто забыли о ядрах «клонирования» и использовали STM32 Официальное ядро что делает вещи так, как намерены дизайнеры чипов. Всегда будут проблемы с ядром старого Leaflab ... Проблемы, которые можно обобщить только как: «Это просто потому, что именно так они и делали..."

Что касается процедуры загрузчика и инициализации, я знаю, что Роджер сделал некоторые серьезные улучшения, но я не могу вспомнить (мне нужно изучить Изменить журналы) любые изменения в загрузчике Leaflabs в том, что касается инициализации. Но я рекомендую не использовать загрузчик, ST-Link или Serial TTL-превосходная методология загрузки, IMO. http: // wiki.STM32duino.com/index.PHP?тип ... g_a_sketch

Луча

LSMOD
Солнце 13 января 2019 г. 9:34
[Стивестронг - Сб 12 января 2019 г. 16:20] - Здесь несколько дополнительных указателей, как установить режим PIN: https: // github.com/stevstrong/adafruit_ ... H#L98-L103
и как написать значение: https: // github.com/stevstrong/adafruit_ ... M32.H#L118
Спасибо - это то, что я искал.
Я попробую это и сделаю короткий демонстрационный код.
Когда это будет работать, я опубликую это здесь.

[Mrburnette - Сб 12 января 2019 г. 9:26 вечера] - На самом деле, я бы предпочел, чтобы вы просто забыли о ядрах «клонирования» и использовали STM32 Официальное ядро что делает вещи так, как намерены дизайнеры чипов. Всегда будут проблемы с ядром старого Leaflab ... Проблемы, которые можно обобщить только как: «Это просто потому, что именно так они и делали..."
Разница между ядрами до сих пор неясна для меня.
Я уже спросил это здесь ViewTopic.PHP?F = 28&t = 4474&начало = 10#p51947
Вы написали хороший обзор ViewTopic.PHP?f = 2&t = 3111, Но нет описания, в чем разница между этими ядрами?

Я только понимаю, что здесь есть полные различные базовые библиотеки, такие как «Мейпл -ядро» здесь или «libopencm3».
Но когда вы начинаете, вы понятия не имеете, что вам нужно позже и где вы получите лучшую реализацию для этого.
Так что я просто рад, когда я просто знаю, как делать то, что я хочу, или если это можно сделать.

Дополнительные есть чередующиеся запутанные имена, такие как «Core» на основе Leaflabs и «Maple Core».

Для LiboPencm3 есть обзор реализованной функции http: // libopencm3.org/docs/andal/stm32 ... дулы.HTML

Mrburnette
Солнце 13 января 2019 13:13
[LSMOD - Солнце 13 января 2019 г. 9:34 утра] - ...
Разница между ядрами до сих пор неясна для меня.
Я уже спросил это здесь ViewTopic.PHP?F = 28&t = 4474&начало = 10#p51947
Вы написали хороший обзор ViewTopic.PHP?f = 2&t = 3111, Но нет описания, в чем разница между этими ядрами?
...
Для вашей цели большими различиями являются архитектура программного обеспечения и API: Введение
Это репо добавляет поддержку MCU STM32 в Arduino IDE.

Эта порция основана на:

Пакеты MCU STM32Cube, включая:
Уровень аппаратной абстракции HAL, обеспечивающий портируемость между различными устройствами STM32 с помощью стандартизированных вызовов API
APIS с низким уровнем (LL), легкий, оптимизированный, ориентированный на экспертный набор API, предназначенных как для эффективности производительности, так и для эффективности выполнения
Определение устройства CMSIS для STM32
CMSIS: Стандарт программного интерфейса программного интерфейса Cortex Microcontroller (CMSIS) является независимым от поставщиком слоем аппаратной абстракции для серии процессоров Cortex®-M и определяет общие интерфейсы инструментов. Он был упакован в качестве модуля для Arduino IDE: https: // github.com/stm32duino/arduinomodule-cmsis
Встроенный набор инструментов GNU: компилятор GCC, библиотеки и другие инструменты GNU, встроенные GCC, необходимые для разработки программного обеспечения с голой металлом на устройствах на основе коры Arm Cortex-M. Пакеты предоставляются благодаря: https: // github.com/stm32duino/arm-none-eabi-gcc
Другое отличие, на которое следует отметить, заключается в том, что этот форум собирается закрыть, и вы останетесь с ядром Роджера с применением некоторых патчей и нигде, где жаловаться Задавать вопросы; по сути в нигде земли. Хорошо для тех из нас самодостаточных, но на самом деле не подходит для пользователя, который полагается на других и продолжающееся диалог.

Leaflabs - инженерная компания, которая разработала первые доски Arduino'ish Arduino'ish:
https: // www.Leaflabs.com/maple
Они также написали Libmaple:
[Неактивный] libmaple
Libmaple неактивен и больше не принимает заявки.
Libmaple - это библиотека для программирования Stm32 Line of Cortex M3
Микроконтроллеры. Он имеет чистый слой C, собственно Libmaple, который делает
Большая часть работы и слой C ++, Wirish, который обеспечивает высокий уровень
Удобные функции и совместимый с проводной/arduino интерфейс.

Libmaple предназначен для портативности и в настоящее время работает на разнообразии
STM32F1 MACU и Line Performance and Value Line с экспериментальной поддержкой
Для MCUS STM32F2.
Таким образом, по сути, вам нужно перейти на официальное ядро ​​STM или научиться быстро стать опытными, поддерживая версию Хоста Роджер на GitHub.


Луча

LSMOD
Солнце 13 января 2019 14:13
[Стивестронг - Сб 12 января 2019 г. 16:20] - Здесь несколько дополнительных указателей, как установить режим PIN: https: // github.com/stevstrong/adafruit_ ... H#L98-L103
и как написать значение: https: // github.com/stevstrong/adafruit_ ... M32.H#L118
Извините - это не совсем ясно, чтобы понять: extern gpio_reg_map * dataRegs; #define setWriteDir() ( dataRegs->CRL = 0x33333333 ) // set the lower 8 bits as output //set up 8 bit parallel port to write mode. setWriteDir();

LSMOD
Солнце 13 января 2019 14:17
[Mrburnette - Солнце 13 января 2019 г. 13:13] - Другое отличие, чтобы отметить Этот форум собирается закрыть и у вас останется ядро ​​Роджера с применением некоторых патчей и нигде, где жаловаться Задавать вопросы; по сути в нигде земли. Хорошо для тех из нас самодостаточных, но на самом деле не подходит для пользователя, который полагается на других и продолжающееся диалог.

Leaflabs - инженерная компания, которая разработала первые доски Arduino'ish Arduino'ish:
https: // www.Leaflabs.com/maple
Они также написали Libmaple:
[Неактивный] libmaple
Libmaple неактивен и больше не принимает заявки.


Таким образом, по сути, вам нужно перейти на официальное ядро ​​STM или научиться быстро стать опытными, поддерживая версию Хоста Роджер на GitHub.

Итак, stm32duino ездит на мертвой лошади? : шок: :(

Беннебой
Солнце 13 января 2019 г. 14:54
Не обязательно, но у ключевого сопровождающего прямо сейчас нет времени, чтобы двигаться вперед, и многие из «старых рук» перешли к другим вещам, STMCube, ESP и т. Д., Таким образом, их интерес ослабел.

Основная проблема с перемещением в ядро ​​STM для менее ресурсов, пропитанных чипсами, состоит в том, сколько HAL/LL. По этой причине я сомневаюсь, что это ядро ​​действительно «умрет» только после того, как форум прочтет, как бы не хотелось бы.

LSMOD
Солнце 13 января 2019 г. 15:23
Это нет Делая то, что я хочу.
Он компилирует, но производит только интересный выход на более низких 8 битах GPIOA. :ржу не могу:
То же самое с использованием макрофукций или прямого доступа.
// set the pins to input mode #define setReadDir(r) ( r->regs->CRL = 0x88888888 ) // set the lower 8 bits as input // set the pins to output mode #define setWriteDir(r) ( r->regs->CRL = 0x33333333 ) // set the lower 8 bits as output // use fast bit toggling, very fast speed! #define Write8(r, c) { r->regs->ODR = (uint32_t)(0x00FF0000 + ((c)&0xFF)); } #define Toggle8(r, c) { r->regs->BSRR = (uint32_t)(0x00FF0000 + ((c)&0xFF)); } static uint32_t PortA; void blink() { digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); } void setup() { enableDebugPorts(); // use all pins pinMode(LED_BUILTIN, OUTPUT); // blue pill LED PC13 setWriteDir(GPIOA); PortA = GPIOA->regs->ODR & 0xFFFFFF00; } void loop() { uint8_t i; uint8_t BOut; BOut = 0x01; for(i = 1; i <= 7; i++ ) { GPIOA->regs->ODR = PortA | (uint32_t)BOut; // Write8(GPIOA, BOut); BOut = BOut << 1; // Shift Left // delay(100); // wait 100 ms } blink(); BOut = 0x80; for(i = 1; i <= 7; i++ ) { GPIOA->regs->ODR = PortA | (uint32_t)BOut; // Write8(GPIOA, BOut); BOut = BOut >> 1; // Shift Right // delay(100); // wait 100 ms } blink(); }

LSMOD
Солнце 13 января 2019 г. 15:30
[Беннебой - Солнце 13 января 2019 г. 14:54] - Не обязательно, но у ключевого сопровождающего прямо сейчас нет времени, чтобы двигаться вперед, и многие из «старых рук» перешли к другим вещам, STMCube, ESP и т. Д., Таким образом, их интерес ослабел.

Основная проблема с перемещением в ядро ​​STM для менее ресурсов, пропитанных чипсами, состоит в том, сколько HAL/LL. По этой причине я сомневаюсь, что это ядро ​​действительно «умрет» только после того, как форум прочтет, как бы не хотелось бы.
Тогда ядро ​​Libmaple была мертвой лошадью. :!:

Но когда этот форум будет закрыт, и никто не поддерживает STM32Duino, он умрет.

Так что имеет смысл научиться работать с LiboPencm3 или чем -то еще. :?

Mrburnette
Солнце 13 января 2019 г. 16:34
[LSMOD - Солнце 13 января 2019 г. 15:30] - ...
Тогда ядро ​​Libmaple была мертвой лошадью. :!:

Но когда этот форум будет закрыт, и никто не поддерживает STM32Duino, он умрет.

Так что имеет смысл научиться работать с LiboPencm3 или чем -то еще. :?
Я подозреваю, что ядро, загрузчик и Libmaple Роджера, которые продолжают использовать в некоторой степени, так как уже есть многочисленные вариации на GitHub. Но если кто -то пытается учиться & Узнайте внутреннюю работу STM32F1XX, тогда я рекомендую работать с единственное ядро ​​для Arduino, которое полностью поддерживается; STM32 Arduino Core.
Это молодое ядро, но активно поддерживается и основана на зрелом STM HAL, по сути, версия Arduino является обертками вокруг коммерческих версий кода. Обучение коду для HAL защищает ваши инвестиции в обучение и облегчает вашу миграцию из Arduino в профессиональные инструменты IDE+.

Луча

Просто для усмешки: Племенная мудрость индейцев Дакоты, переходящая от поколения к поколению, говорит, что, “Когда вы обнаружите, что вы едете на мертвой лошади, лучшая стратегия - спешиться.”

Напротив, здесь’S, сколько людей отвечают, когда узнают свои “лошадь” мертв:

Скажи что -то вроде, “Так мы всегда ездили на лошади.”
Назначить комитет для изучения лошади.
Купить более сильный кнут.
Изменить гонщиков.
Договориться о посещении других мест, чтобы увидеть, как они ездят на мертвых лошадях.
Поднимите стандарты для езды на мертвых лошадях.
Назначить команду сортировки, чтобы возродить мертвую лошадь.
Создайте тренировку для повышения нашей способности езды.
Сравните состояние мертвых лошадей сегодня’S Бизнес -среда.
Измените свои правила определения, объявив, “Эта лошадь не мертва.”
Нанимать вне консультантов, чтобы ездить на мертвой лошади.
Объединить несколько мертвых лошадей, чтобы увеличить скорость и тянуть силу.
Объявить это “Никакая лошадь не слишком мертва, чтобы победить.”
Обеспечить дополнительное стимулирующее финансирование (больше палочек - больше моркови), чтобы увеличить лошадь’S Performance.
Сделайте теме, чтобы увидеть, могут ли конкуренты ездить на нем дешевле.
Приобретите пакет программного обеспечения или институт новой программы, чтобы заставлять мертвых лошадей работать быстрее.
Заявить, что лошадь “лучше, быстрее и дешевле” мертвый.
Сформируйте качественный круг, чтобы найти использование для мертвых лошадей.
Пересмотрите требования к производительности для мертвых лошадей.
Уменьшить мертвую лошадь.
Переведите вину мертвой лошади’S последний гонщик.
Продвигать мертвую лошадь на надзорную позицию.
Сократить трек.
Объявить, что мертвая лошадь была “одна из ведущих лошадей” в свое время.
Создать тесты для лидеров мертвых лошадей промышленности.
Собрать других мертвых животных и объявить о новой программе разнообразия.
Соберите презентацию Spiffy PowerPoint, чтобы планировали планировщики удвоить мертвую лошадь R & D Бюджет.
Получить мертвую лошадь веб -сайт!

LSMOD
Солнце 13 января 2019 г. 16:55
[Mrburnette - Солнце 13 января 2019 г. 16:34] - Но если кто -то пытается учиться & Узнайте внутреннюю работу STM32F1XX, тогда я рекомендую работать с единственное ядро ​​для Arduino, которое полностью поддерживается; STM32 Arduino Core.
Это молодое ядро, но активно поддерживается и основана на зрелом STM HAL, по сути, версия Arduino является обертками вокруг коммерческих версий кода. Обучение коду для HAL защищает ваши инвестиции в обучение и облегчает вашу миграцию из Arduino в профессиональные инструменты IDE+.
HAL как новая Odyssey 2019 вместо 2001 года ? :ржу не могу:

О.K. Эта лошадь, кажется, хочет сохранить. 8-)
Можете ли вы дать еще несколько подсказок для "Learning to Code to Hal" ?
Или, другими словами - как кодировать чтение или написание 8 булавок сразу с вашим ядром?


Изображение

Должен быть Привет, Рэй

Mrburnette
Солнце 13 января 2019 г., 17:33
Начало работы с Хэлом - вопрос, что Фрэдерик, возможно, должен ответить, но я постараюсь предложить подход:
Начните с эталонных файлов производителей PDF: https: // www.ул.com/en/encedded-software ... UBEF1.HTML

И добавьте в это любой из многих (лабораторных) учебников, приведенный ниже бесплатный:
Обнаружение микроконтроллера STM32 от Джеффри Брауна

... И для твоей синей таблетки...

Если у вас его нет, купите ST-Link или планируйте использовать сериал в реализации кремния ... Пока, Bye Bootloader.

Все выше, это традиционный подход. Если вы хотите попробовать Хэла под Ардуино, то https: // github.com/stm32duino/arduino_core_stm32

У вас будет доступ ко всем источникам низкого уровня.
https: // github.com/stm32duino/arduino_c ... Uino/STM32

Что касается чтения, написанного портом, Один метод:
Изображение


Получайте удовольствие и удачи.


Луча

LSMOD
Вт 15 января 2019 г. 9:44
[Mrburnette - Солнце 13 января 2019 г., 17:33] - Получайте удовольствие и удачи.

Луча
Спасибо, Рэй.

Это ищет большую работу и не может быть сделано быстро.
Я проверю его и увижу результаты.
Но, честно говоря, я тоже буду внимательно взглянуть на LiboPencm3.

Mrburnette
Вторник 15 января 2019 г. 14:19
[LSMOD - Вт 15 января 2019 г. 9:44] - ...
Но, честно говоря, я тоже буду внимательно взглянуть на LiboPencm3.
Браво. Всегда следует быть открытым для лучшего подхода.
Я не использовал libopencm3, но быстрый поиск Google показывает много активности; например.

По моему мнению, все сводится к вашему конечному желанию, это то, что приводит к тому, что он приводит к STM32FXXX UC? Большинство оригинальных участников здесь были привлечены к разумной стоимости плюс Увеличение скоростной скорости & Шрам плюс Задача управления UC в рамках Arduinoide. Но некоторые другие пришли сюда, потому что они проходили университетский курс, который использовал аппаратное обеспечение STM32. Для многих это стало настоящей рабочей лошадкой и является их добычей UC. Для себя я только что прошел и перешел на другие устройства SOC.

Луча