Untitled
unknown
plain_text
3 years ago
3.2 kB
5
Indexable
void USART3_oppstart(void){ //Deklarasjon av initialiseringsstrukturane. USART_InitTypeDef USART3_InitStructure; USART_ClockInitTypeDef USART3_ClockInitStructure; //Slipper til klokken. RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); USART_ClockStructInit(&USART3_ClockInitStructure); USART_ClockInit(USART3, &USART3_ClockInitStructure); USART3_InitStructure.USART_BaudRate = 9600; //19200;//57600;//19200; //9600; USART3_InitStructure.USART_WordLength = USART_WordLength_8b; USART3_InitStructure.USART_StopBits = USART_StopBits_1; USART3_InitStructure.USART_Parity = USART_Parity_No ; //USART_Parity_Odd; USART3_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART3_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //Legg inn konfigurasjonen i modulen// USART_Init(USART3, &USART3_InitStructure); //Setter bit slik at vi får en global interrupt når det kommer fara i bufferet og det ennå er data i RDR registeret.(RXNEIE dvs RX NOT EMPTY INTERUPT ENABLE) USART3->CR1 |= USART_CR1_RXNEIE; //Aktiverer samtidig IRQ-en NVIC_EnableIRQ(USART3_IRQn); NVIC_SetPriority(USART3_IRQn, 2); USART_ITConfig(USART3,USART_IT_RXNE, ENABLE); //GPIO-delen m� fiksast slik at den virkar her dvs. p� STM32F3-kortet //P� STM32F3: GPIO-pinnane PA2 og 3 brukt mot intern USART2-modul //------------------------------------------ //Deklarasjon av initialiseringsstrukturen. GPIO_InitTypeDef GPIO_InitStructure_UART3; //Slepp foerst til klokka paa GPIOA-modulen RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE); //Sett USART2 Tx (PA2) som AlternativFunksjon og "push-pull" (vanleg totempaale) GPIO_InitStructure_UART3.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure_UART3.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure_UART3.GPIO_Speed = GPIO_Speed_Level_1; GPIO_InitStructure_UART3.GPIO_OType = GPIO_OType_PP; //Initialiser, dvs. last ned konfigurasjonen i modulen GPIO_Init(GPIOD, &GPIO_InitStructure_UART3); //Knytt pinnen til AF */ GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_7);// Sj� stm32f30x_gpio.h //Sett USART2 Rx (PA3) som flytande inngang ("input floating") GPIO_InitStructure_UART3.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure_UART3.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure_UART3.GPIO_PuPd = GPIO_PuPd_NOPULL; //Initialiser, dvs. last ned konfigurasjonen i modulen GPIO_Init(GPIOD, &GPIO_InitStructure_UART3); //Knytt pinnen til AF */ GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_7); //Aktiver s� USART1 USART_Cmd(USART3, ENABLE); } uint8_t USART3_les(void) { if ( USART_GetFlagStatus(USART3, USART_FLAG_RXNE) != RESET) { return (uint8_t)USART_ReceiveData(USART3); } else { return (uint8_t)0x00; } } void USART3_skriv(uint8_t data) { USART_SendData(USART3, (uint8_t) data); //Loop until the end of transmission while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET) { ; } }
Editor is loading...