千家信息网

MCU如何自定义引脚做UART串口

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍了MCU如何自定义引脚做UART串口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。当(单片机)芯片自带的UART端口不
千家信息网最后更新 2024年09月22日MCU如何自定义引脚做UART串口

这篇文章主要介绍了MCU如何自定义引脚做UART串口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

当(单片机)芯片自带的UART端口不够用时,我们可以考虑利用其它引脚作为UART.

串口RS232的数据协议有两种,我们以PC与8位/32位单片机间比较常用的异步模式为例子讲解.
单片机的TXD引脚先发一个低电平0给对方,然后发送5-8个位作为数据,最后发送1个位奇偶校验和1个位高电平1作为停止位.
以下例子为波特率9600bps,1个开始位,8个数据位,1个停止位 [10位数据,无奇偶校验位:9600-8-N-1]
波特率:每秒钟发送的字节位,如果baudrate=9600,也就是说,每发送1位耗时1000/9600=104uSec

/**************************************   利用51芯片定时器中断模拟串口信息发送   优点:可以自定义串口引脚,可以实现多个串口   格式: 9600-8-N-1   功能:模拟串口Send*****************************************/#include          char   g_nSendInx=0;char   g_nBuff=0;char   g_nFlag=0;#define MY_TXD P1_0 //模拟TXD引脚void Timer0Init(void)//104微秒@11.0592MHz{ //1000ms/9600=104.166us //使用这种方案,由于精确性问题,长时间传输会偶然出现几个误码    TMOD &= 0xF0;       //设置定时器模式    TMOD |= 0x02;       //设置定时器模式    TL0 = 0xA0;     //设置定时初值    TH0 = 0xA0;     //设置定时重载值    TF0 = 0;        //清除TF0标志    TR0 = 1;        //定时器0开始计时    ET0=1;    EA=1;}/******************************  自定义串口发送单字符  ******************************/void MyUart_Send(char ch){  g_nFlag=0;  g_nBuff=ch;  TR0=1;  while(g_nFlag==0);}/******************************  自定义串口发送字符串******************************/void MyUart_String(char* str){  int i=0;  while(*(str+i)){   i++;   g_nFlag=0;   g_nBuff=*(str+i);   TR0=1;   while(g_nFlag==0);  }}/*   定时器0中断服务*/void Timer0_ISP() interrupt 1{  g_nSendInx++;//发送模拟第几位  if(g_nSendInx==1)  {     MY_TXD=0;//起始位拉低  }else if(g_nSendInx==10)  //格式: 9600-8-N-1,完整10个字节  {     MY_TXD=1;//停止位拉高     TR0=0;     g_nSendInx=0;     g_nFlag=1;///发送完成标志位  }else{    MY_TXD=g_nBuff&0x01;////sbuffer_data    g_nBuff>>=1;  }}/**********************************  用Timer0定时中断模拟串口信号**********************************/void main (void) {   Timer0Init();///定时器初始化,周期为 1000ms/9600=104us   MyUart_String("===Welcome,My Uart===\r\n ");   MyUart_Send(0x61);   MyUart_Send(0x62);   MyUart_Send(0x63);  while (1); }

感谢你能够认真阅读完这篇文章,希望小编分享的"MCU如何自定义引脚做UART串口"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

串口 定时器 数据 篇文章 个位 单片机 模式 例子 奇偶 字节 标志 格式 波特率 电平 芯片 波特 精确 不够 也就是 也就是说 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 为什么网络安全政治化 数据库信息管理平台怎么创建 织梦上传数据库怎么配置 网络安全名词 可证明安全 林甸软件开发技术在线咨询 中华人民共和国网络安全风险 护苗网络安全课rar 六安市公安局网络安全保卫处 网络技术咨询平台 steam头像服务器出错怎么办 网络技术应用 浙教版 思科防火墙如何实现网络安全 宝塔面板如何搭建下载服务器 网络安全的心得体会600字 智慧医疗网络安全的重要性 计算机网络安全建设 石油勘探数据库排名 检验nfs服务器是否存在的命令 玩客云怎么做成云服务器 数据库服务器指的是什么 卫星上有语言数据库吗 linux服务器日志分析 鄞州手机软件开发管理 陕西红色文化馆软件开发系统 网络安全内容中不包括 软件开发可以开发啥 日企软件开发国内有名 虹口区网络技术服务代理品牌 数据库服务器指的是什么 江苏关闭服务器
0