Поиск
Показаны результаты для тегов 'stm32l152'.
-
Купим микросхемы 1-300 штук. Или больше если есть. Нужно в течении 3-х недель. STM32L152VET6, STM32L162VET6, STM32L152VDT6, STM32L162VDT6. Можно б/у в платах, лишь бы рабочие.
-
Инициализация и работа с USART1
csm7 опубликовал тема в ARM, 32bit
Добрый день форумчане Работаю в CoIDE Пытаюсь передать данные по USARTX Пока ничего не получается в чем проблема #include "misc.h" #include "stm32l_Init.h" #include "stm32l1xx_rcc.h" #include "stm32l1xx_gpio.h" #include "stm32l1xx_usart.h" void RCC_Configuration(){ RCC_HSICmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)==RESET); RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI); RCC_MSIRangeConfig(RCC_MSIRange_6); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB | RCC_AHBPeriph_GPIOC, ENABLE); /* My Reset USART1, USART3 */ USART_DeInit(USART1); USART_DeInit(USART3); /* My Enable clocks USART3 PB10 -> USART3_TX, PB11 -> USART3_RX */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); /* Enable PWR, USART3 mngt clocks */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_USART3, ENABLE);//RCC_APB1Periph_COMP | /* Enable ADC & SYSCFG clocks */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG , ENABLE); } void Alt_GPIO_Init(GPIO_TypeDef* GPIOx, uint32_t GPIO_Pin){ /* Initialize Leds mounted on STM32L1-DISCOVERY board */ GPIO_InitTypeDef GPIO_InitStructure; /* GPIOB Periph clock enable */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); /* Configure Port in output pushpull mode */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOx, &GPIO_InitStructure); } /****************----------------------------------------------------*******************/ void Alt_UsartInit(USART_TypeDef* USARTx, GPIO_TypeDef* GPIOx, uint32_t GPIO_Pins, uint32_t BaudRate) { /* Конфигурируем порты PB10 - TX, PA11- RX как альтернативную функцию для USART3 */ USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; /* Configure USART3 Rx (PB10 PB11) as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pins; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOx, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOB, GPIO_PinSource10, GPIO_AF_USART3); GPIO_PinAFConfig(GPIOB, GPIO_PinSource11, GPIO_AF_USART3); /* Настраиваем USARTx */ USART_InitStructure.USART_BaudRate = BaudRate; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No ; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; /* Включаем USARTx */ USART_Init(USARTx, &USART_InitStructure); /* Включаем USARTx */ USART_Cmd(USARTx, ENABLE); } #include "stm32l1xx.h" #include "stm32l1xx_rcc.h" #include "stm32l1xx_gpio.h" #include "stm32l1xx_usart.h" #include "stm32l_Init.h" /* Private define ------------------------------------------------------------*/ #define LD_GREEN_GPIO_PIN GPIO_Pin_7 #define LD_BLUE_GPIO_PIN GPIO_Pin_6 /* Private functions ---------------------------------------------------------*/ void Delay(__IO uint32_t nCount); int main(void) { RCC_Configuration(); Alt_GPIO_Init(GPIOB, LD_GREEN_GPIO_PIN | LD_BLUE_GPIO_PIN); Alt_UsartInit(USART3, GPIOB, GPIO_Pin_10 | GPIO_Pin_11, 9600); while(1) { GPIO_SetBits(GPIOB, LD_GREEN_GPIO_PIN | LD_BLUE_GPIO_PIN); Delay(10000); GPIO_ResetBits(GPIOB, LD_GREEN_GPIO_PIN | LD_BLUE_GPIO_PIN); Delay(10000); USART_SendData(USART3, 's'); while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET);// } return 0; } Ожидает выход со строки while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET);//