Главная › Форумы › Программирование микроконтроллеров › Программирование МК STM32
Помечено: STM32
- В этой теме 168 ответов, 99 участников, последнее обновление 7 месяцев, 2 недели назад сделано Sanekfps2024.
-
АвторСообщения
-
Декабрь 14, 2022 в 6:17 пп #24727TrouyanУчастник
Добрый день,
Столкнулся с необходимостью поднять на STM32F7 сервер для обмена информацией используя REST API.
С STM32 работал много, но до этого момента не затрагивал LAN соединения, их протоколы и интерфейсы и т.п.
Начал изучать примеры на Вашем сайте, и не нашел REST API.
Примеров много разных и с NETCONN и RAW … но как Я понял чисто REST API примеров нету? Или какой пример будет наиболее близок, какой взять за основу?
Пока не могу понять с какой стороны к этому делу подступиться…
Заранее благодарю!Январь 26, 2023 в 3:09 пп #24791nav169УчастникДобрый день
Уроки на Ютубе недоступныЯнварь 3, 2024 в 9:33 пп #26213tvitУчастникДобрый день. Подскажите как можно реализовать mass strorage на контроллере stm32f103c8t6 к которому я подключил микро sd карту через SPI интерфейс на базе адаптера CATALEX microSD card adapter.
Сама файловая система работает по примерам также создает папку и файл на sd карте. Но вот как диск не могу понять как сделать. Чтобы через компьютер закидывать файлы на карту памяти.Апрель 21, 2024 в 4:36 пп #26231Sanekfps2024УчастникДобрый день. У меня проблема. STM32f103 не уходит в прерывание по таймеру. Флаг прерывания подымается а вектор не обрабатывается.
код:
#include «stm32f10x.h»
#define SYSCLOCK 72000000Uunsigned 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);}
-
АвторСообщения
-
АвторСообщения
-
Добрый день,
Столкнулся с необходимостью поднять на STM32F7 сервер для обмена информацией используя REST API.
С STM32 работал много, но до этого момента не затрагивал LAN соединения, их протоколы и интерфейсы и т.п.
Начал изучать примеры на Вашем сайте, и не нашел REST API.
Примеров много разных и с NETCONN и RAW … но как Я понял чисто REST API примеров нету? Или какой пример будет наиболее близок, какой взять за основу?
Пока не могу понять с какой стороны к этому делу подступиться…
Заранее благодарю!Добрый день
Уроки на Ютубе недоступныДобрый день. Подскажите как можно реализовать mass strorage на контроллере stm32f103c8t6 к которому я подключил микро sd карту через SPI интерфейс на базе адаптера CATALEX microSD card adapter.
Сама файловая система работает по примерам также создает папку и файл на sd карте. Но вот как диск не могу понять как сделать. Чтобы через компьютер закидывать файлы на карту памяти.Добрый день. У меня проблема. STM32f103 не уходит в прерывание по таймеру. Флаг прерывания подымается а вектор не обрабатывается.
код:
#include «stm32f10x.h»
#define SYSCLOCK 72000000Uunsigned 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);}
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.