volatile uint8 Sending;/********************************************************************
函数功能:串口初始化。
入口参数:无。
返    回:无。
备    注:无。
********************************************************************/
void InitUART(void)
{EA=0; //暂时关闭中断TMOD&=0x0F;  //定时器1模式控制在高4位TMOD|=0x20;    //定时器1工作在模式2,自动重装模式SCON=0x50;     //串口工作在模式1TH1=256-Fclk/(BitRate*12*16);  //计算定时器重装值TL1=256-Fclk/(BitRate*12*16);PCON|=0x80;    //串口波特率加倍ES=1;         //串行中断允许TR1=1;        //启动定时器1REN=1;        //允许接收 EA=1;         //允许中断
}
End of function///********************************************************************
函数功能:串口中断处理。
入口参数:无。
返    回:无。
备    注:无。
********************************************************************/
void UartISR(void) interrupt 4
{char m;ES = 0;if(RI)    //收到数据{m=SBUF;SBUF=m;RI=0;   //清中断请求}else      //发送完一字节数据{TI=0;Sending=0;  //清正在发送标志}ES = 1;
}
End of function///********************************************************************
函数功能:往串口发送一字节数据。
入口参数:d: 要发送的字节数据。
返    回:无。
备    注:无。
********************************************************************/
void UartPutChar(uint8 d)
{SBUF=d; //将数据写入到串口缓冲Sending=1;    //设置发送标志while(Sending); //等待发送完毕
}
End of function///********************************************************************
函数功能:发送一个字符串。
入口参数:pd:要发送的字符串指针。
返    回:无。
备    注:无。
********************************************************************/
void Prints(uint8 * pd)
{while((*pd)!='\0') //发送字符串,直到遇到0才结束{UartPutChar(*pd); //发送一个字符pd++;  //移动到下一个字符}
}
End of function//

串口中断处理 m=SBUF; SBUF=m;自收发相关推荐

  1. cc2530入门 与串口中断处理

    注:转载请注明出处. 做毕业设计的时候用到了cc2530开发板,用协议栈编程实现智能家居的功能.现在总结一下: 先从Z_Stack的main()函数开始. main函数在ZMain.c中,总体来说,它 ...

  2. Arduino中Serial.print()与Serial.write()函数的区别,以及串口通信中十六进制与字符串的收发格式问题和转换过程详解

    1.串口通信中十六进制和字符数据的区别 串口收发数据时字符.十六进制.二进制格式详细区分 ASCII码查询表格 在使用串口发送数据时可以选择字符串(ASCII)发送或者十六进制(Hex)发送,通常情况 ...

  3. 【DSP】TMS320F28035串口SCI不定长字节数据FIFO收发,数据帧格式:0XFD(帧头)+数据+0XFC 0XFD(帧尾)

    /**********************************************************************************自定义串口接收协议,单字节接收中断 ...

  4. 串口通信(SBUF代码原理详解)

    这里写目录标题 基本概念 读取数据手册 串口中断 代码讲解 基本概念 前言: 时钟对于单片机来说是非常重要的,它能为单片机提供一个稳定的机器周期从而使系统能够正常工作.它就像我们人类的心脏一样重要,一 ...

  5. SBUF, TI/RI, ES

    寒假过去一半了,这两天重新开始学习.这里来个小结,51单片机的一些关于串口通信的寄存器/锁存器. 首先放上一段代码,来自郭天祥的51单片机教程 功能是:向单片机发送一个字符(比如e),然后单片机返回字 ...

  6. c语言接收串口数据信息,C51通用串口收发数据C语言程序

    #include //C51通用串口收发数据C语言程序模块 #define  uchar unsigned char #define uint unsigned int uchar shu; bit ...

  7. SBUF数据缓冲寄存器

    SBUF 数据缓冲寄存器 这是一个可以直接寻址的 串行口 专用 寄存器 .有朋友这样问起过"为何在 串行口 收发中,都只是使用到同一个寄存器 SBUF ?而不是收发各用一个寄存器." ...

  8. STM32CubeMX系列教程8:配置工程模板(串口+不定长数据收发+DMA+IDLE中断+软中断)

    文章目录 摘要 生成工程 配置外设 1.配置时钟与Debug 2.配置串口与DMA 3.配置定时器与中断 配置时钟树 配置工程设置 点击`GENERATE CODE`生成工程 修改源码 配置软中断 配 ...

  9. Matlab显示串口收发的中文数据

    最近用Matlab通过串口与STM32单片机通讯.在收发中文时,Matlab打印输出发生译码错误,显示的是扩展ASCII字符,而不是中文.在本文中讨论了Matlab串口通讯时,中文变乱码的原因,并实现 ...

最新文章

  1. 时间控件之赋值问题:datetimebox
  2. flask 实现异步非阻塞----gevent
  3. 批量读入一个文件夹中文件的数据操作实例
  4. python datetime
  5. 敏捷BI的业务模型是怎样的,为何能替代手动建模?
  6. 【BZOJ3289】Mato的文件管理,莫队+树状数组
  7. 在SQL Server中使用sp_WhoIsActive监视活动
  8. UIImageView 与 UIImage 区别
  9. 对阵Flash 实战HTML 5技巧之页面设计
  10. java array使用_Java_ArrayLit详细用法
  11. nginx 的基本配置
  12. P2P技术体系结构与分类
  13. 基于web的网上书城网站设计与实现(SpringBoot ,Vue,MySQL )
  14. 去掉office标题前的黑点
  15. Roguelike到底是啥?讲讲和Roguelike 相关知识(搬运)
  16. 记-----租房七大注意事项
  17. 交换机vtp功能配置
  18. Python 实现英文新闻摘要自动提取 1
  19. 大话西游2同一个账号同一个服务器,大话西游2:服务器合并你是否支持?老玩家告诉你合服后的影响!...
  20. html页面酒店日历插件,基于vue2.x的酒店日历选择插件

热门文章

  1. 科大讯飞AI营销大赛 CTR预估总结
  2. 微信开发者工具:代码更新后页面未刷新
  3. linux桌面图标恢复,恢复Linux桌面下方面板上显示最小化的图标的方法
  4. 笔记(四)Home Assistant添加小米设备
  5. Hyperledger Avalon启动笔记
  6. 联想拯救者Y7000P鼠标卡顿问题(已解决)
  7. 山西大同大学计算机分数线,山西大同大学录取分数线2021是多少分(附历年录取分数线)...
  8. Mac:TexStudio 首行缩进
  9. 通达信玩转庄家追击反转指标源码,带MACD顶背离底背离,不错。
  10. SAN存储的局限性相关介绍