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

📄 m16_usart.h

📁 AVR单片机ATmega16的串口测试程序
💻 H
字号:
/*===================================================================
			CopyLeft(CL) FORVERE Late Lee 
			   All rights NOT reserved
		     版权所无,翻版不究,但请保留此处信息。
			http://www.cnbolgs.com/latelee
			  any problem or suggestion 
			  mail to:  latelee@163.com
*文件名:	串口通信测试程序
*文件说明:	实现多种格式收发
*版本:          v1.0
*芯片:          ATmega16
*晶振:          内部 7372800MHz晶振
*作者:          Late Lee
*日期:          2009年1月26日 已丑年初一晚 	
*编译环境:      UltraEdit+WinAVR20080610(gcc 4.3.0) 经仿真测试
*说明:		下面是一些说明和笔记:
**使用说明:一定要保证所测试的模式正确--在头文件设置,
**传说串口可以有30种模式,此处只写了其中8种如下:
// M1:8位数据位,1位停止位,无校验
// M2:8位数据位,1位停止位,奇校验
// M3:8位数据位,2位停止位,无校验
// M4:8位数据位,2位停止位,偶校验
// M5:9位数据位,1位停止位,无校验
// M6:9位数据位,1位停止位,奇校验
// M7:9位数据位,2位停止位,无校验
// M8:9位数据位,2位停止位,偶校验	

**此次修改了关于自定义类型的一些小问题,AVRGCC建议用其定义的类型。
**测试笔记:
1、未添加中断处理部分
2、严重声明:在发送、接收数据处理时很不合理!如果真的要分8位和9位传送,
则分开写就可以了。  2009-1-24 23:00
3、两芯片仿真时9位数据发送不正常,未与PC仿真,2009-1-24 23:05
4、usart_receive9()编译有警告,不知原因。2009-1-25 18:40
5、解决警告问题,if语句有些表达得不好,9位数据收发测试正常 1-26 21:07
====================================================================*/

#ifndef _M16_USART_H_
#define _M16_USART_H_

#include <avr/io.h>
#include <util/delay.h>
#include "my_type.h"

// #define F_CPU	7372800
#define METHOD	8	// 模式选择
//#define U2XX		// 用来设置倍率

#define BAUD	38400	// 用标准库设置

#ifdef BAUD
#include <util/setbaud.h>
#endif

void usart_init_baud(uint16 baud);		// 以波特率为形参的初始化函数	

void usart_init_std(void);			// 使用标准库设置波特率的初始化函数

void usart_init(void);				// 直接赋值的初始化函数

void usart_transmit8(uint8 data);		// 8位

void usart_transmit9(uint16 data);		// 9位

void usart_sendstring(uint8 *string);		// 发送字符串

uint8 usart_receive8(void);			// 8位

uint16 usart_receive9(void);			// 9位

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -