Программирование МК STM32



Помечено: 

Просмотр 4 сообщений - с 166 по 169 (из 169 всего)
  • Автор
    Сообщения
  • #24727
    Trouyan
    Участник

    Добрый день,
    Столкнулся с необходимостью поднять на STM32F7 сервер для обмена информацией используя REST API.
    С STM32 работал много, но до этого момента не затрагивал LAN соединения, их протоколы и интерфейсы и т.п.
    Начал изучать примеры на Вашем сайте, и не нашел REST API.
    Примеров много разных и с NETCONN и RAW … но как Я понял чисто REST API примеров нету? Или какой пример будет наиболее близок, какой взять за основу?
    Пока не могу понять с какой стороны к этому делу подступиться…
    Заранее благодарю!

    #24791
    nav169
    Участник

    Добрый день
    Уроки на Ютубе недоступны

    #26213
    tvit
    Участник

    Добрый день. Подскажите как можно реализовать mass strorage на контроллере stm32f103c8t6 к которому я подключил микро sd карту через SPI интерфейс на базе адаптера CATALEX microSD card adapter.
    Сама файловая система работает по примерам также создает папку и файл на sd карте. Но вот как диск не могу понять как сделать. Чтобы через компьютер закидывать файлы на карту памяти.

    #26231
    Sanekfps2024
    Участник

    Добрый день. У меня проблема. STM32f103 не уходит в прерывание по таймеру. Флаг прерывания подымается а вектор не обрабатывается.
    код:
    #include «stm32f10x.h»
    #define SYSCLOCK 72000000U

    unsigned long long int _time=0;

    //описание вектора прерывания
    void TIM2_IRQHandler (void) {

    if(READ_BIT(TIM2->SR, TIM_SR_UIF))//проверка флага перевания
    {
    CLEAR_BIT(TIM2->SR, TIM_SR_UIF);//сброч флага
    }
    _time++;

    }

    void ClockInit(void)
    {
    SET_BIT(RCC->CR,RCC_CR_HSION);

    while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == RESET);

    MODIFY_REG(RCC->CFGR,RCC_CFGR_PLLMULL,0x07);//PLL множитель равен 9
    SET_BIT(RCC->CFGR,RCC_CFGR_PLLSRC); //Тактирование PLL от HSE
    while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == RESET);
    //Устанавливаем 2 цикла ожидания для Flash
    //так как частота ядра у нас будет 48 MHz < SYSCLK <= 72 MHz
    MODIFY_REG(FLASH->ACR,FLASH_ACR_LATENCY,0x02);
    //Делители
    MODIFY_REG(RCC->CFGR,RCC_CFGR_PPRE2,0x00);
    MODIFY_REG(RCC->CFGR,RCC_CFGR_PPRE1,0x04);
    MODIFY_REG(RCC->CFGR,RCC_CFGR_HPRE,0x00);
    //Переключаем на внешний pll
    MODIFY_REG(RCC->CFGR,RCC_CFGR_SW,0x02);
    //ждем завершения
    while(READ_BIT(RCC->CFGR, RCC_CFGR_SWS_1) == RESET);
    //отклюбчем внутрению RC
    CLEAR_BIT(RCC->CR,RCC_CR_HSION);
    //SYSCLOCK = 8MHz * 9=72MHz;
    }

    void Timer2Init()
    {
    SET_BIT(RCC->APB1ENR,RCC_APB1ENR_TIM2EN);//включили тактиирование таймера
    SET_BIT(TIM2->CR1,TIM_CR1_CEN);//запускаем счет таймера
    MODIFY_REG(TIM2->PSC,TIM_PSC_PSC,3599);//делитель частоты
    MODIFY_REG(TIM2->ARR,TIM_ARR_ARR,2000);//длительность
    SET_BIT(TIM2->DIER,TIM_DIER_UIE);//разрешаем прерывания таймеру

    }

    int main()
    {

    ClockInit();
    Timer2Init();

    NVIC_EnableIRQ(TIM2_IRQn); //разрешаем прерывание в регистре перывания
    __enable_irq ();
    while(1);

    }

  • Автор
    Сообщения
  • #24727

    Trouyan
    Участник
    • Оффлайн

    Добрый день,
    Столкнулся с необходимостью поднять на STM32F7 сервер для обмена информацией используя REST API.
    С STM32 работал много, но до этого момента не затрагивал LAN соединения, их протоколы и интерфейсы и т.п.
    Начал изучать примеры на Вашем сайте, и не нашел REST API.
    Примеров много разных и с NETCONN и RAW … но как Я понял чисто REST API примеров нету? Или какой пример будет наиболее близок, какой взять за основу?
    Пока не могу понять с какой стороны к этому делу подступиться…
    Заранее благодарю!

    #24791

    nav169
    Участник
    • Оффлайн

    Добрый день
    Уроки на Ютубе недоступны

    #26213

    tvit
    Участник
    • Оффлайн

    Добрый день. Подскажите как можно реализовать mass strorage на контроллере stm32f103c8t6 к которому я подключил микро sd карту через SPI интерфейс на базе адаптера CATALEX microSD card adapter.
    Сама файловая система работает по примерам также создает папку и файл на sd карте. Но вот как диск не могу понять как сделать. Чтобы через компьютер закидывать файлы на карту памяти.

    #26231

    Sanekfps2024
    Участник
    • Оффлайн

    Добрый день. У меня проблема. STM32f103 не уходит в прерывание по таймеру. Флаг прерывания подымается а вектор не обрабатывается.
    код:
    #include «stm32f10x.h»
    #define SYSCLOCK 72000000U

    unsigned long long int _time=0;

    //описание вектора прерывания
    void TIM2_IRQHandler (void) {

    if(READ_BIT(TIM2->SR, TIM_SR_UIF))//проверка флага перевания
    {
    CLEAR_BIT(TIM2->SR, TIM_SR_UIF);//сброч флага
    }
    _time++;

    }

    void ClockInit(void)
    {
    SET_BIT(RCC->CR,RCC_CR_HSION);

    while(READ_BIT(RCC->CR, RCC_CR_HSIRDY) == RESET);

    MODIFY_REG(RCC->CFGR,RCC_CFGR_PLLMULL,0x07);//PLL множитель равен 9
    SET_BIT(RCC->CFGR,RCC_CFGR_PLLSRC); //Тактирование PLL от HSE
    while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) == RESET);
    //Устанавливаем 2 цикла ожидания для Flash
    //так как частота ядра у нас будет 48 MHz < SYSCLK <= 72 MHz
    MODIFY_REG(FLASH->ACR,FLASH_ACR_LATENCY,0x02);
    //Делители
    MODIFY_REG(RCC->CFGR,RCC_CFGR_PPRE2,0x00);
    MODIFY_REG(RCC->CFGR,RCC_CFGR_PPRE1,0x04);
    MODIFY_REG(RCC->CFGR,RCC_CFGR_HPRE,0x00);
    //Переключаем на внешний pll
    MODIFY_REG(RCC->CFGR,RCC_CFGR_SW,0x02);
    //ждем завершения
    while(READ_BIT(RCC->CFGR, RCC_CFGR_SWS_1) == RESET);
    //отклюбчем внутрению RC
    CLEAR_BIT(RCC->CR,RCC_CR_HSION);
    //SYSCLOCK = 8MHz * 9=72MHz;
    }

    void Timer2Init()
    {
    SET_BIT(RCC->APB1ENR,RCC_APB1ENR_TIM2EN);//включили тактиирование таймера
    SET_BIT(TIM2->CR1,TIM_CR1_CEN);//запускаем счет таймера
    MODIFY_REG(TIM2->PSC,TIM_PSC_PSC,3599);//делитель частоты
    MODIFY_REG(TIM2->ARR,TIM_ARR_ARR,2000);//длительность
    SET_BIT(TIM2->DIER,TIM_DIER_UIE);//разрешаем прерывания таймеру

    }

    int main()
    {

    ClockInit();
    Timer2Init();

    NVIC_EnableIRQ(TIM2_IRQn); //разрешаем прерывание в регистре перывания
    __enable_irq ();
    while(1);

    }

Просмотр 4 сообщений - с 166 по 169 (из 169 всего)
  • Для ответа в этой теме необходимо авторизоваться.