⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.c

📁 CAN 程序使用MCP2515 由STM32做主芯片控制
💻 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 + -