Exemplo n.º 1
0
// ----------------------------------------------------------------------------
void
xpcc::stm32::BufferedFlowUsart6::setBaudrate(uint32_t baudrate,
		uint32_t interruptPriority, bool blocking)
{
	// Enable clock
	RCC->APB2ENR |= RCC_APB2ENR_USART6EN;
	
	isBlocking = blocking;
	
	USART6->CR1 = 0;
	
	// Set vector priority
	NVIC_SetPriority(USART6_IRQn, interruptPriority);
	
	// Enable USART in the interrupt controller and enable receive ready interrupt
	NVIC->ISER[USART6_IRQn / 32] = 1 << (USART6_IRQn & 0x1F);
	
	USART6->CR1 |= USART_CR1_RXNEIE;
	
	// Set baudrate
	USART6->BRR = calculateBaudrateSettings(apbClk, baudrate);
	
	// Transmitter & Receiver-Enable, 8 Data Bits, 1 Stop Bit
	USART6->CR1 |= USART_CR1_TE | USART_CR1_RE;
	USART6->CR2 = 0;
	USART6->CR3 = 0;
	
	USART6->CR1 |= USART_CR1_UE;		// Uart Enable
}
Exemplo n.º 2
0
// ----------------------------------------------------------------------------
xpcc::stm32::UsartSpi6::UsartSpi6(
		uint32_t bitrate, Mode mode)
{
	// Enable clock
	RCC->APB2ENR |= RCC_APB2ENR_USART6EN;
	
	USART6->CR1 = 0;
	
	// Set baudrate
	USART6->BRR = calculateBaudrateSettings(STM32_APB2_FREQUENCY, bitrate);
	
	USART6->CR2 = USART_CR2_CLKEN | USART_CR2_LBCL | mode;
	USART6->CR3 = 0;
	
	// Transmitter & Receiver-Enable, 8 Data Bits, 1 Stop Bit
	USART6->CR1 |= USART_CR1_TE | USART_CR1_RE;
	USART6->CR1 |= USART_CR1_UE;		// Uart Enable
}
Exemplo n.º 3
0
// ----------------------------------------------------------------------------
void
xpcc::stm32::UsartHal2::setBaudrate(uint32_t baudrate)
{
	USART2->BRR =	calculateBaudrateSettings(apbClk, baudrate);
}