https://www.cnblogs.com/yangfengwu/p/11100552.html

这节做个上位机控制Wi-Fi引脚输出的PWM占空比信号,灯的亮度就可以用上位机控制了

大家可以自己扩展程序控制舵机的旋转角度

双击

textBox3.Text = trackBar1.Value.ToString();//显示当前滑动条的值

然后规定下协议  注意为了大家以后做项目的通用性  数据传输用

讲一个知识点

大家传输十进制数据怎么传输的,,传输浮点型数据怎么传输的  大家百度下IEEE754

看一下用它做数据转换的妙用

我直接说了

假设你要发送220.5

这样做

咱们新建一个data_dispose.h文件

为了预防别人用我的源码在C++里面编译

typedef union Resolve//解析数据
{
char Data_Table[];//16进制四字节表示形式
float DataF;//浮点型
long DataInt;//有符号整形
unsigned long DatauInt;//无符号整形
}ResolveData;

现在看使用

假设我采集了仪器仪表  仪器仪表就是IEEE754规范 发过来的220.5的 浮点型数据   0x43  0x5C  0x80 0x00

我现在需要转化为220.5

注意一件事情  0x43  0x5C  0x80 0x00   是高位数据在前

举个例子:259

       

化为16进制表示是  0x01  0x03      这样排序就是高位在前

16进制怎么转成259呢   就是   0x01==1    1乘于2的8次方  再  加上   0x03  就是  3

1*256 + 3 = 259

如果计算完以后内存里面是这样存储的

说个名词:大端模式

如果数据的高位存储在了存储地址的低位   数据的低位存储在了存储地址的高位    -----名称:大端模式

与之相反的是小端模式

数据的低位存储在了存储地址的低位   数据的高位存储在了存储地址的高位    -----名称:小端模式

如果你做过仪器仪表,或者用过仪器仪表  应该知道,工业里面经常用到

然后提醒一下

51单片机存储数据是大端模式

STM32  是小端模式

电脑:小端模式

手机:好像是大端模式...忘记了

咱用的这个8266  小端模式

有人可能会问,具体怎么看出来的....

接着看

首先要记着

注意一件事情  0x43  0x5C  0x80 0x00   是高位数据在前 低位数据在后

刚才我测试了下,官方给的printf不支持打印浮点数.......

所以我自己写了个printf功能

void sendstring(unsigned char *string)//此处*string相当于数组
{
while(*string!='\0')//判断是否到字符串末尾
{
USART_SendData(UART0, *string);
string++;
}
} void uart_printf(const char *fmt,...)//和printf一样使用
{
va_list ap;
char string[];//缓存,如果发送的超过此数,请自行增大
va_start(ap,fmt);
vsprintf(string,fmt,ap);//此处也可以使用sprintf函数,用法差不多,稍加修改即可,此处略去
sendstring(string);
va_end(ap);
}

先打印看看

现在咱 把浮点型的数据转16进制数组存储

出来是 0xcd 0x4c 0xbe 0x43

由于8266是 小端模式  所以反着排的  低位在前 高位在后

上面主要说明的是 如何按照IEEE754规约 进行 16进制和浮点数的转化

其实测试大端 小端 很简单

你反正知道  259是   0x01  0x03   0x01是高位

你可以

说明数据是低位存在低位  高位存在高位,所以是小端模式

其实只要知道就可以

真不行你解析的时候  一看解析不对颠倒一下

其余的还是放到下节吧,先消化消化

https://www.cnblogs.com/yangfengwu/p/11104167.html

13-ESP8266 SDK开发基础入门篇--上位机串口控制 Wi-Fi输出PWM的占空比,IEEE754规约的更多相关文章

  1. 14-ESP8266 SDK开发基础入门篇--上位机串口控制 Wi-Fi输出PWM的占空比,调节LED亮度,8266程序编写

    https://www.cnblogs.com/yangfengwu/p/11102026.html 首先规定下协议  ,CRC16就不加了哈,最后我会附上CRC16的计算程序,大家有兴趣自己加上 上 ...

  2. 15-ESP8266 SDK开发基础入门篇--上位机串口控制 Wi-Fi输出PWM的占空比,调节LED亮度,上位机程序编写

    https://www.cnblogs.com/yangfengwu/p/11104167.html 先说一下整体思路哈.. 咱滑动的时候 会进入这个,然后咱呢不直接从这个里面写发送 因为这样的话太快 ...

  3. 10-ESP8266 SDK开发基础入门篇--上位机通过串口控制ESP8266灯亮灭

    https://www.cnblogs.com/yangfengwu/p/11087618.html 其实这一节就是对上三节的综合测试 https://www.cnblogs.com/yangfeng ...

  4. 24-ESP8266 SDK开发基础入门篇--Android TCP客户端.控制 Wi-Fi输出PWM的占空比,调节LED亮度

    https://www.cnblogs.com/yangfengwu/p/11204436.html 刚才有人说需要点鸡汤.... 我想想哈;我还没问关于哪方面的鸡汤呢!!! 我所一直走的路线 第一: ...

  5. 21-ESP8266 SDK开发基础入门篇--C# TCP客户端 , 控制LED亮灭

    https://www.cnblogs.com/yangfengwu/p/11192603.html 由于是台式机,,没有插无线网卡...所以呢我就用调试助手监控下数据 后期让WIFI连接路由器的时候 ...

  6. 9-ESP8266 SDK开发基础入门篇--编写串口上位机软件

    https://www.cnblogs.com/yangfengwu/p/11087613.html 页面修改成这样子             现在看串口发送数据 点击点亮 发送0xaa 0x55 0 ...

  7. 12-ESP8266 SDK开发基础入门篇--PWM,呼吸灯

    https://www.cnblogs.com/yangfengwu/p/11094085.html PWM其实没有什么,就是看着官方给的API,,,然后就是用呗 对了,其实对于RTOS SDK版本的 ...

  8. 7-ESP8266 SDK开发基础入门篇--串口处理数据,控制LED

    接着上一节的写 咱先做一个单片机串口接收到什么就回过来什么 咱自己写个发送函数,其实就是仿照官方的写的 别忘了 现在咱建个任务处理串口数据 下载进去 现在是三个任务都在运行了...操作系统是不是很神奇 ...

  9. 1-ESP8266 SDK开发基础入门篇--开发环境搭建

    因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...

随机推荐

  1. Linux 头文件详解

    概览: 头文件目录中总共有32个.h头文件.其中主目录下有13个,asm子目录中有4个,Linux子目录中有10个,sys子目录中有5个. <a.out.h>:a.out头文件,定义了a. ...

  2. 忘记token怎么加入k8s集群

    一.概述 新版本的k8s,初始化生成的token,只有24小时.超过时间,就得需要重新生成token,为了避免这种情况,直接生成永久的token 二.操作步骤 1.生成一条永久有效的token kub ...

  3. 阿里巴巴 Java 开发手册 (十二)安全规约

    1. [强制]隶属于用户个人的页面或者功能必须进行权限控制校验. 说明:防止没有做水平权限校验就可随意访问.修改.删除别人的数据,比如查看他人的私信 内容.修改他人的订单. 2. [强制]用户敏感数据 ...

  4. ASP.NET SignalR 系列(一)之SignalR介绍

    一.SignalR介绍 ASP.NET SignalR 是一个面向 ASP.NET 开发人员的库,可简化将实时 web 功能添加到应用程序的过程. 实时 web 功能是让服务器代码将内容推送到连接的客 ...

  5. pandas-11 TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely错误解决方法

    pandas-11 TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be sa ...

  6. JS基础理论相关知识

    1.XHTML和HTML有什么区别 HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同:XHTML 元素必须被正确地嵌套.XHTML 元素必须被关闭.标签名必须用 ...

  7. 正则 \num 如:\1, \2 匹配的结果

    \num 匹配 num,其中 num 是一个正整数.对所获取的匹配的引用.例如,'(.)\1' 匹配两个连续的相同字符. 例子: 正则:/(a)(b)\1/.此表达式的意思大概是对第一个()匹配结果的 ...

  8. 财政FINAUNCE英文FINAUNCE金融

    中文名金融 外文名Finance.Finaunce 概括为货币的发行与回笼 从事金融机构有银行.信托投资公司 目录 1 基本定义 2 关于概念 ? 概念新解 ? 概念现状 ? 熊德平新解 3 金融特征 ...

  9. 三星手机使用应用沙盒一键修改路由mac数据

    之前文章介绍了怎么在安卓手机上安装激活xposed框架,xposed框架的极强的功能大家都知道,能够不修改apk的前提下,修改系统底层的参数,打比方在某些应用情景,大家需要修改手机的某个系统参数,这情 ...

  10. Jenkins系列之-—DevOps高效插件推荐【转】

    基于Jenkins及其插件生态实现自己的持续交付与DevOps平台. jenkins 插件官网 Blue Ocean Jenkins2.7以后可安装,是Jenkins的一种新视图,能够通过图形化的界面 ...