单片机引脚模拟串口协议发送数据

使用引脚进行串口通讯,如果该引脚正好支持UART,直接初始化便可以使用,但真就是什么样的项目都有啊,这里就随便用了一个引脚进行模拟串口通讯协议进行数据传输。

一、串口通讯协议

串口数据包的基本组成:
在这里插入图片描述
根据这个串口数据包的基本组成进行接口函数的编写即可实现串口数据的发送,传输波特率是由每位数据电平保持的时间决定的。

二、代码

#define sendinterval    10      //位时钟,10ms传输一位,则波特率为100bps
//**********************************************************************
//           字节发送函数
//**********************************************************************
void send_byte(char in)         //输入变量为即将发送的数据
 {
   char i=0;     
          
   Start_LOW();                 //发送低电平
   delay_ms(sendinterval);
   for(i=0;i<8;i++)             //将数据位送到端口
   {
      if(in&0x01)
      {       
        Start_HIGH();           //发送高电平
      }
      else
      {
        Start_LOW();            //发送低电平
      }
      in = in>>1;               //准备下位数据
      delay_ms(sendinterval);   //位时钟
    }
    Start_HIGH();               //发送停止位,高电平
    delay_ms(sendinterval);		//空闲位
    delay_ms(sendinterval);     //清空一下总线,不清也没事
 }
 
//**********************************************************************
//           字符串发送函数
//**********************************************************************
void send_str(uchar *str,uint len)
{
  for(int i=0;i<len;i++)
  {
    send_byte(*(str+i));
  }
}
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值