Jump to content

    

inventor

Свой
  • Content Count

    657
  • Joined

  • Last visited

Community Reputation

0 Обычный

About inventor

  • Rank
    Знающий
  • Birthday 02/18/1969

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

4722 profile views
  1. не вызываетса ни програмно ни проводом с 3.3 вольт
  2. STM32H743. Это другой процессор. на 103 у меня тоже работает а на L432 не хочет
  3. функции __HAL_AFIO_REMAP_SWJ_DISABLE() для L432 нет, сделал по примитивному просто кинул проводок на другую ногу и там сделал внешнее IRQ настраивал этот порт SWDIO на выход - меандр дает, а вот прерывания по входу никак не получаются. просто вывод в uart порт а есть разница если это просто на этапе отладки или какой нить неизвестный мне программистский талмуд это запрещает делать? в мануале и errate не нашел ничего
  4. Внешнее прерывание заведено на ногу SWDIO, поэтому отладчик не получается использовать контроллер stm32l432, 13 нога на PORTA #define RFM69_ISR_PIN_Pin GPIO_PIN_13 #define RFM69_ISR_PIN_GPIO_Port GPIOA #define RFM69_ISR_PIN_EXTI_IRQn EXTI15_10_IRQn #define RFM69_ISR_PIN_EXTI_IRQHandler EXTI15_10_IRQHandler void beacon_task_isr_init(void) { GPIO_InitTypeDef gpio = { 0 }; __HAL_RCC_GPIOA_CLK_ENABLE(); /* Это для "средней" и совсем новой платы */ gpio.Pin = RFM69_ISR_PIN_Pin; gpio.Mode = GPIO_MODE_IT_RISING; gpio.Pull = GPIO_NOPULL; HAL_GPIO_Init(RFM69_ISR_PIN_GPIO_Port, &gpio); HAL_NVIC_SetPriority(RFM69_ISR_PIN_EXTI_IRQn, 5, 1); HAL_NVIC_EnableIRQ(RFM69_ISR_PIN_EXTI_IRQn); В прерываниии поставил печать, но ничего, ...пытаюсь просто подавать проводком 3.3 вольта на эту ногу и никакой реации. Кто делал внешнее прерывание на служебные ноги, может там еще надо какие то телодвижения в коде сделать? Что то очень давно помню что как то нужно JTAG ремапить, НО КАК это сделать с этим процом я не знаю.
  5. В общем такой лоховский вопрос: для чего так делать? Обратил внимание, на некоторых платах от разных производителей линии MISO MOSI и CS подтянуты на некоторых нет, подтяжка это обязательное условие или нет? и если нет поддяга, то достаточно ли это сделать программно. GPIO PULL_UP ?
  6. так и сделано, но плата уже в производстве, свой PPS я на другой выход подаю а надо на обычный, для других потребителей
  7. такой вопрос, я подстраиваю 32 битный таймер tim5 по пульсам 1PPS, после того как я настроил таймер я хочу этот же вход таймера перестроить на выход и давать на него "свой" pps можно ли таймер перестроить "на лету" из режима pwm/захват -> счетный таймер pwm на выход т.е сделать это в момент времени между приходом новой секунды, не выключая его: записать в ARR значение периода до чего считать и переназначить прерывание по переполнению. и наоборот из этого режима на счет?
  8. да, понял, тупанул ищу функцию которая работает как vfsprintf()
  9. Пытаюсь сделать вариант свой printf на терминал void log_printf(const char* tag, char* fmt,...) { // xSemaphoreTake(log_mtx, portMAX_DELAY); va_list arp; va_start(arp, fmt); xprintf(fmt, arp); va_end(arp); вызываю: log_printf("main", "i = %04X\n", i); выводит какой то мусор: i =2004аас8 если вызываю xprintf(i = %04X\n", i); то все в порядке, не могу понять в чем ошибка
  10. я понимаю так, мне нужно сделать внешний кусок кода, сделать указатели на функции, привязать данные к определенным адресам и вызывать эти "внешние" функции. типа: pragma default_function_attributes = @ "MY_FUNC" static int test(int a, int b) { return a + b; } #pragma default_function_attributes = typedef int (fptr)(int, int); int main(void) { int c; fptr *myfunc = (fptr*)0x08080001; c = myfunc(5,6); возникает вопрос, как мне сделать эту библиотеку, чтобы из нее получить бинарник и как определить на какой адресе эти функции будут расположены? ведь если сделать этот бинарник map файл не будет производится?
  11. потому что прошивка всего может занимать до получаса. удаленно делается
  12. у меня есть loader, который умеет перепрошивать внутреннюю flash новой программой, вот такой вопрос возник, часть программы является библиотекой со своими функциями и прочими вещами. есть ли возможность сделать так, чтобы перепрошивать не всю программу, а только эту библиотеку? для этого как то нужно ее разместить на заранее выбранных адресах flash и в случае изменения библиотеки прошивать тогда не всю программу вместе с ней, а только ее.
  13. все решил проблему. на передающей стороне также надо присваивать node address