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*****************************************/#includechar 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安全错误
数据库的锁怎样保障安全
滁州服务器回收优质商家
网络安全渗透测试摘要
男孩子学软件开发怎么样
内威培训网络技术
创建数据库工具
微互联网科技
网络安全信息通报工作规范
多媒体技术属于网络技术吗
office服务器域名
服务器加几个安全狗
辐射76公测服务器
云服务器游戏服务器连接不上
工业软件开发的应用现状
网络安全的第五个特点
山西信民投互联网科技有限公司
瑞庭网络技术审核专员
压测查看服务器指标
atom芯片服务器
古交dns服务器地址
查询外部数据库用etl还是程序
hp150 服务器
开黑啦怎么换服务器头像
网络安全小实验代码
数据库使用什么技术连接
软件开发和测试哪个好学
对比数据库的两张表
数据库网上购物实验报告
怎么打开安装好的数据库
域控服务器需要做什么
医学数据库索引号