Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: stm32-p103
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
volkov9999
Доброго времени.
Я только начал изучать контроллеры, поэтому не судите строго. Работаю в gnuarm под линукс. Зашил программу мигания диодом... Сижу изучаю манны и вроде бы как все понятно... но не могу написать что-то свое... Мне сейчас нужно написать программу, чтобы на любую ногу сигнал приходил.... хочу скопом посмотреть. Сам понимаю что это несколько строчек, но увы вынужден просить помощи. Вот пример мигания диодом

Код
#include <ch.h>
#include <test.h>
#include "board.h"
#include "stm32_serial.h"
/*
* Red LEDs blinker thread, times are in milliseconds.
*/
static WORKING_AREA(waThread1, 128);
static msg_t Thread1(void *arg) {
  while (TRUE) {
      GPIOC->BRR = GPIOC_LED;
//    GPIOC->BRR = GPIOC_DISC;
    chThdSleepMilliseconds(500);
    GPIOC->BSRR = GPIOC_LED;
//      GPIOC->BSRR = GPIOC_DISC;
    chThdSleepMilliseconds(500);
  }
  return 0;
}
/*
* Entry point, note, the main() function is already a thread in the system
* on entry.
*/
int main(int argc, char **argv) {
  /*
   * Creates the blinker thread.
   */
  chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
  /*
   * Normal main() thread activity, in this demo it does nothing except
   * sleeping in a loop and check the button state.
   */
  while (TRUE) {
    if (GPIOA->IDR & GPIOA_BUTTON)
      TestThread(&COM2);
    chThdSleepMilliseconds(500);
  }
  return 0;
}


Посоветуйте что-нибудь. laughing.gif
koyodza
Ну а инициализацию периферии кто делать будет? Это Вам не авр и не 51, здесь чтобы, например, заработал GPIOA, надо хотя бы тактирование ему включить.
Возьмите любой самый маленький пример для начала и разберитесь в нём. А уж потом будете потоки создавать
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.