-
//
串口程序
已经试过
//
实现发
A
收到
E
发数字收到
ERROR
#ifndef UART_H_
#define
UART_H_
#define
UART ((UART_STR *) UART_BASE)
#include
#include
#include
#include
#include
#include
#include
unsigned char
receive_temp;//
接收到的临时数据
unsigned char
buffer[6]=
#define
BUFFER_SIZE
200
/
*-------------------------------------------------
---------------
*
*---------
--------------------------------------------------
----*/
typedef
struct{
unsigned char
mode_flag; //xmodem 1;uart 0;
unsigned int receive_flag;
unsigned int receive_count;
unsigned char
receive_buffer[BUFFER_SIZE];
int (* send_byte)(unsigned char data);
void (* send_string)(unsigned int len,
unsigned char *str);
int (*
init)(void);
unsigned int (*
baudrate)(unsigned int baudrate);
}UART_T;
extern UART_T uart;
/* * ==========
========================================== *
Filename: uart.c
* Description: RS232
device driver
* Version: *
Created: * Revision: none
*
Compiler: Nios II IDE
*
Author: AVIC
* Company:
* =========================
==========================
*/
/*-----------
--------------------------------------------------
-
* Include
*-----------------------------------------
--------------------*/
/*--
--------------------------------------------------
----------
Define
* Function Prototype
*--------------------------
------------------------------------*/
static int
uart_send_byte(unsigned char data);
static void
uart_send_string(unsigned int len, unsigned char
*str);
static int uart_init(void); static void
uart_ISR(void);
static int
set_baudrate(unsigned int baudrate);
//
初始
uart
结构体,注意结构体初始
化方式
UART_T uart={
.mode_flag=0,
.receive_flag=0,
.receive_count=0,
.send_byte=uart_send_byte,
.send_string=uart_send_string,
.init=uart_init,
.baudrate=set_baudrate };
/*
* ===
FUNCTION ========================================
* Name: uart_send_byte
* Description:
収送一个字节数据
* Description:
収送一个字节数据
*/
static int uart_send_byte(unsigned char
data)
{
//
将収送癿数据放刡収送数据缓冲
区内,等徃状忞寄存器
TRDY
置
1<
/p>
,当
TRDY
置
1
,说明
//
接收完毕
UART->IT_DATA = data;
while(!UART->);
return 0;
}
/*
* ===
FUNCTION ========================================
* Name: uart_send_string
* Description:
収送字符串数据
* =====================================
================ */
static
void uart_send_string(unsigned int len, unsigned
char *str)
{
while(len--)
{
uart_send_byte(*str++);
}
}
/* * === FUNCTION
========================================
* Name: uart_init
* Description:
初始化程序
-
-
-
-
-
-
-
-
-
上一篇:pic16f1824增强型串口通信源码
下一篇:BasicRF简析剖析