-
大小: 41KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-05-10
- 语言: 其他
- 标签: STC15F2K60S2 串口
资源简介
STC15F2K60S2串口通信程序
代码片段和文件信息
//**********************************************
//STC15F2K60S2串口通信程序将串口接受到的数据从串口发出去
//采用22.1184M晶振波特率115200
//为方便大家调试特附该程序的项目工程文件下载地址下载打开即可调试下载到单片机
//
//*********************************************
#include //调用stc15f系列头文件下载地址: http://pan.baidu.com/s/1eRUbjLS
/*************常量定义****************/
#define MAIN_Fosc 22118400L //主时钟晶振频率不同的直接在这里修改频率
#define serial_one_read_max 32 //定义缓存区的长度
#define serial_one_baud_rate 115200L //波特率只需在这里修改波特率就可以了
#define Timer1_Reload (65536UL -(MAIN_Fosc / 4 / serial_one_baud_rate)) //用定时器1做波特率发生器,计算定时器1的重装值
/*************变量定义****************/
u8 serial_one_read_data[serial_one_read_max]; //定义串口接受数据缓存区
u8 serial_one_read_count=0; //接受数据的个数
//初始化串口1
void serial_one_init()
{
SCON |= 0x40; //8位数据
P_SW1 &= ~0xc0; //UART1 使用P30 P31口 默认
TR1 = 0; //关闭定时器
AUXR &= ~0x01; //S1 BRT Use Timer1;
TMOD &= ~(1<<6); //Timer1 set As Timer
TMOD &= ~0x30; //Timer1_16bitAutoReload;2
AUXR |= (1<<6); //Timer1 set as 1T mode
TH1 = (u8)(Timer1_Reload >> 8);
TL1 = (u8)Timer1_Reload;
TR1 = 1; //打开定时器
PS = 1; //高优先级中断
REN = 1; //允许接收
ES = 1; //允许中断
EA = 1; //允许全局中断
}
//延时10毫秒
void Delay10ms() //@22.1184MHz
{
unsigned char i j k;
_nop_();
_nop_();
i = 1;
j = 216;
k = 35;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//串口1发送一个字节
void serial_one_send_byte(u8 dat)
{
SBUF = dat;//发送数据
while(!TI);//等待发送完毕
TI=0; //清除发送标志
}
//串口1发送字符串
void serial_one_send_string(u8 *dat)
{
while(*dat)
serial_one_send_byte(*dat++);
}
//串口1发送指定指定长度数据
void serial_one_send_length_string(u8 *datu8 length)
{
u8 i=0;
for(;i < length;i++)
serial_one_send_byte(dat[i]);
}
void main()
{
Delay10ms();//延时10毫秒
Delay10ms();//延时10毫秒
serial_one_init();//串口初始化
while(1)
{
if(serial_one_read_count > 0)//如果接受到数据
{
Delay10ms();//延时10毫秒,等待数据全部读入
serial_one_send_length_string(serial_one_read_dataserial_one_read_count);//发送接收到的数据
serial_one_read_count = 0;//接收计数清0
}
}
}
/********************* 串口1中断函数************************/
void UART1_int (void) interrupt UART1_VECTOR
{
if(RI)
{
RI = 0;//清除接受标志
serial_one_read_data[serial_one_read_count] = SBUF;//将数据存入数组
if(++serial_one_read_count > serial_one_read_max) //避免溢出
serial_one_read_count = 0;
}
// if(TI)
// {
// }
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-06-18 18:49 串口通信\
文件 2780 2017-06-18 18:48 串口通信\main.c
文件 5985 2017-06-18 18:48 串口通信\main.LST
文件 26252 2017-06-18 18:48 串口通信\main.OBJ
文件 25455 2017-06-18 18:48 串口通信\serial
文件 1348 2017-06-18 18:48 串口通信\serial.hex
文件 42 2017-06-18 18:48 串口通信\serial.lnp
文件 8873 2017-06-18 18:48 串口通信\serial.M51
文件 15858 2017-06-18 18:48 串口通信\serial.plg
文件 71938 2017-06-18 18:49 串口通信\serial.uvgui.Administrator
文件 5374 2017-06-18 18:49 串口通信\serial.uvopt
文件 13414 2017-06-18 18:49 串口通信\serial.uvproj
文件 32794 2017-06-12 21:40 串口通信\STC15Fxxxx.H
相关资源
- STC15/STC15F2K60S2/STC15W4K32S4系列读取超声
- STC15F2K60S2读取DHT11温湿度传感器数据串
- stm32基于轮询方式的串口收发程序
- STM32F030C8T6串口例程
- 基于单片机的串口多机通信6机
- 普通单片机IO口模拟UART程序
- 解决了关闭死锁的CSerialPort类项目
- STC15F2K60S2 iic 驱动程序
- WINCE 串口工具
- CH341串口驱动Win10
- 串口试验.c
- CnComm 1.51(串口类 串口库 完全源码
- QT 串口源码 串口 QT 串口助手代码
- W5500电路设计原理图
- PB串口通讯API源代码
- 基于MSP430的模拟SPI串口通信的实现
- labview做的串口助手
- pixhawk自定义串口
- delphi xe10 蓝牙串口通讯DEMO
- 扩展实验1 ATK-HC05蓝牙串口模块实验程
- 51单片机编写的基于串口控制的多路舵
- STC15W-408AS_EEPROM与串口通信
- STM32 多串口DMA传输透传带DEBUG输出代码
- RS422串口C驱动源代码
- SerialPort.zip
- labview串口中断控制例程
- gps定位从串口返回gps数据程序代码
- FX PLC USB-SC09 驱动 CH340/CH341USB转串口
- SPCOMM_DELPHI_串口工具源码
- CH340驱动(USB串口驱动)_XP_WIN7-win10全
评论
共有 条评论