Untitled
unknown
plain_text
4 years ago
3.2 kB
8
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...