• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 关于通过串口向单片机发送数据

关于通过串口向单片机发送数据

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了单片机串口发送数据,51单片机串口发送数据,51单片机串口发送程序,单片机串口发送字符串,单片机串口发送程序等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于通过串口向单片机发送数据
描述:

最近在做一个自助柜的开锁程序,是把开锁码放在数组中,通过输入开锁码之后遍历数组对比,对比完了之后决定是否开锁,逻辑问题已经解决了,现在就是不知道怎样通过串口向单片机发送开锁码达到开锁的目的,求大神指点!


解决方案1:

通过普通的串口调试助手,选择HEX 发送,发送的就是16进制数字,然后通过单片机获取这些数字 使用switch选择你需要的数字功能去实现就好啦

解决方案2:

串口通信么? 这个比较好搞的了http://blog.csdn.net/u011046042/article/details/43195507 参考这个吧

解决方案3:

这是我用的十六进制字符串转十六进制C#代码  的确和别人说的一样 都是要把字符串转化成byte[]数组再处理
  

 byte[] sendBuffer = null;//发送数据缓冲区   
                try //尝试将发送的数据转为16进制Hex  
                {
                    char[] P_chr = sendData.ToCharArray();//得到字符数组
                    IEnumerator P_ienumerator_chr = P_chr.GetEnumerator();//得到枚举器  
                    StringBuilder P_stringbuilder = new StringBuilder(); //创建stringbuilder对象 
                    while (P_ienumerator_chr.MoveNext())//开始枚举
                    {
                        P_stringbuilder.Append((char)P_ienumerator_chr.Current != ' ' ? P_ienumerator_chr.Current.ToString() : string.Empty);//向stringbuilder对象中添加非空格字符        
                    }
                    sendData = P_stringbuilder.ToString(); //得到没有空格的字符串
                    if (sendData.Length == 1)//数据长度为1的时候,在数据前补0  
                    {
                        sendData = "0" + sendData;
                    }
                    else if (sendData.Length % 2 != 0)//数据长度为奇数位时,去除最后一位数据  
                    {
                        sendData = sendData.Remove(sendData.Length - 1, 1);
                    }
                    List<string> sendData16 = new List<string>();//将发送的数据,2个合为1个,然后放在该缓存里 如:123456→12,34,56  
                    for (int i = 0; i < sendData.Length; i += 2)
                    {
                        sendData16.Add(sendData.Substring(i, 2));
                    }
                    sendBuffer = new byte[sendData16.Count];//sendBuffer的长度设置为:发送的数据2合1后的字节数  
                    for (int i = 0; i < sendData16.Count; i++)
                    {
                        sendBuffer[i] = (byte)(Convert.ToInt32(sendData16[i], 16));//发送数据改为16进制   
                    }
                }
                catch //无法转为16进制时,出现异常  
                {
                    //timer1.Enabled = false;
                    checkBox2.CheckState = CheckState.Unchecked;
                    MessageBox.Show("请输入正确的16进制数据", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;//输入的16进制数据错误,无法发送,提示后返回  
                }


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于通过串口向单片机发送数据

相关文章

  • 2017-06-05 大家学驱动如何起步的
  • 2017-06-05 Win2000Delphi环境下使用WinIO读取内存数据
  • 2017-06-05 keil4使用问题
  • 2017-06-05 eeprom断电丢失,我要疯了,求助
  • 2017-06-05 lua中for语句的问题
  • 2017-06-05 DNS和CDN和跨域问题?
  • 2017-06-05 完全没接触过,项目周期两个月,该如何入手?
  • 2017-06-05 关于mini2440串口1发送数据疑问
  • 2017-06-05 请教如何实现比特级内存拷贝,位域及其他方法探讨
  • 2017-06-05 关于通过串口向单片机发送十六进制数组指令,求大神指点!

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 求一段简单代码:对pci卡进行操作?(如configurationregister和memoryregister)
    • 坐标云台控制(嵌入式或者x86
    • DTU通信测试的基本配置
    • 求教各位大神,这个三极管电路何解,谢谢各位
    • ads1292采集信号的单位转换问题
    • 使用RTSP获取海康NVR某个时间段的录像视频
    • 关于ntfs的一些问题
    • 请教大家关于买板子的问题。
    • 求OV5640720P或者更高分辨率15帧配置
    • CC1101实现一对一的电磁波唤醒

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有