61 lines
1.3 KiB
C
61 lines
1.3 KiB
C
#include "stm32f10x.h"
|
|
#include "MyGPIO.h"
|
|
#include "MyTimer.h"
|
|
|
|
void My_USART_Config(USART_TypeDef* USARTx, uint32_t baudrate) { //QUE POUR USART1
|
|
|
|
// Configuration PA9 (Tx) en Alternate Function Push-Pull
|
|
GPIO_configure(GPIOA, 9 , 3);
|
|
// Configuration PA10 (Rx) en Input Floating
|
|
GPIO_configure(GPIOA, 10 , 2);
|
|
NVIC_EnableIRQ(USART1_IRQn);
|
|
NVIC_SetPriority(USART1_IRQn, 3<<4);
|
|
|
|
|
|
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
|
|
// USARTx->CR2 |= USART_CR2_CLKEN;
|
|
USARTx->CR1 |= USART_CR1_UE;
|
|
USARTx->BRR = baudrate;
|
|
USARTx->CR1 |= USART_CR1_TE;
|
|
USARTx->CR1 |= USART_CR1_RE;
|
|
};
|
|
|
|
|
|
void USART_Send_Char(USART_TypeDef* USARTx, char car) {
|
|
while ((USARTx->SR & USART_SR_TXE)==0){
|
|
}
|
|
|
|
USARTx->DR = car;
|
|
};
|
|
|
|
void USART_Send_String(USART_TypeDef *USARTx, char *pString)
|
|
{
|
|
while (*pString != '\0')
|
|
{
|
|
USART_Send_Char(USARTx, *pString);
|
|
pString++;
|
|
}
|
|
};
|
|
|
|
|
|
|
|
void (*pFnc_Receive) (char);
|
|
|
|
void USART_IT_Receive_Enable(USART_TypeDef* USARTx) {
|
|
USARTx->CR1 |= USART_CR1_RXNEIE;
|
|
};
|
|
|
|
void Init_IT_Receive(void (*Receive_IT_function) (char)){
|
|
pFnc_Receive = Receive_IT_function;
|
|
};
|
|
|
|
|
|
|
|
void USART1_IRQHandler(void){
|
|
signed char commande = USART1->DR;
|
|
if (pFnc_Receive != 0) {
|
|
pFnc_Receive(commande);
|
|
}
|
|
|
|
};
|
|
|