Код: Выделить всё
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_StructInit(&GPIO_InitStructure);
/* ENABLE GPIOC clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
/* ENABLE USART clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
/* Configure GPIOC4, GPIOC5 pins, AF7 */
GPIO_PinAFConfig(GPIOC, GPIO_PinSource4, GPIO_AF_7);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource5, GPIO_AF_7);
/* Mode */
// PС4 -> TX UART
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_Init(GPIOC, &GPIO_InitStructure); //инициализируем
//PС5 -> RX UART
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_Init(GPIOC, &GPIO_InitStructure);//инициализируем
/* Configure USART */
USART_InitTypeDef USART_InitStructure;
USART_StructInit(&USART_InitStructure);
/* UART mode (RX, TX) */
USART_InitStructure.USART_Mode = (USART_Mode_Rx | USART_Mode_Tx);
USART_InitStructure.USART_BaudRate = 115200;
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_Init(USART1, &USART_InitStructure);
//UART_IT_Init();
/* USART Start */
USART_Cmd(USART1, ENABLE);Код: Выделить всё
void UART_SendStr(USART_TypeDef* USARTx, const uint8_t* s, uint32_t len){
uint32_t p = 0;
while (p < len){
while (USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);
USART_SendData(USARTx, s[p]);
p++;
}
}Код: Выделить всё
while (USART_GetFlagStatus(USARTx, USART_FLAG_RXNE) == RESET);
return USART_ReceiveData(USARTx);