📄 uart.c
字号:
/*------------------------------------------------------
FILE NAME : uart.c
DESCRIPTION : uart funtion;
VERSION : 1.0.0
AUTHOR :
CREATE DATE : 04.5.2009
MODIFY DATE :
LOGS :-\
--------------------------------------------------------*/
//-----------------Include files-------------------------//
#include "..\header\uart.h"
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
//-----------------Function Prototype--------------------//
//-----------------Variable------------------------------//
//-----------------Function------------------------------//
unsigned char initialize_uart(void)
{
unsigned int fdiv ;
GPIOA->CRH.B.CNF9 =2 ; //TXD
GPIOA->CRH.B.MODE9 =3 ;
GPIOA->CRH.B.CNF10 =1 ; //RXD
GPIOA->CRH.B.MODE10 =0 ;
USART1->CR2.B.CLKEN=0; // DLAB=1,允许设置波特率
USART1->CR2.B.CPOL =0;
USART1->CR2.B.CPHA =0;
USART1->CR2.B.LBCL =0;
fdiv = (FPCLK / 16 ) / UARTBAUD; // 设置波特率 Fdiv= (VPB/(16*bps));
USART1->BRR.B.DIV_Fraction = fdiv / 16;
USART1->BRR.B.DIV_Mantissa = fdiv % 4096;
USART1->CR1.B.M =0; //8bit; 1:9bit;
USART1->CR2.B.STOP =0;
USART1->CR1.B.PCE =0; //Disable the parity checkout;
USART1->CR3.B.CTSE=0;
USART1->CR3.B.RTSE=0;
USART1->CR1.B.TE =1; //Enable the transmit;
USART1->CR1.B.RE =1; //Enalbe the receive;
USART1->CR1.B.UE =1; //Enable the USART;
return 0;
}
/*--------------------------------------------------------
NAME : send_string_to_uart
ENTRY TYPE: unsigned char *
RETURN TYPE:
PURPOSE :
VERSION :
DESCRIPTION:
CREATE DATE:
LOGS :
---------------------------------------------------------*/
int send_string_to_uart(unsigned char* str)
{
while(1){
if(*str=='\0') break;
else{
USART1->DR.B.DR=(*str++);
while(USART1->SR.B.TXE==0);
}
}
return 0;
}
/*--------------------------------------------------------
NAME : send_string_to_uart
ENTRY TYPE: unsigned char *
RETURN TYPE: void
PURPOSE :
VERSION :
DESCRIPTION:
CREATE DATE:
LOGS :
---------------------------------------------------------*/
int send_buffer_to_uart(char unsigned * str,unsigned int len)
{
int i;
for(i=0;i<len;i++){
USART1->DR.B.DR=(str[i]);
while(!USART1->SR.B.TC);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -