222一、纠结51底层驱动自己研究了这么久有什么意义
二、出发点,在保证底线的情况下,让生活尽量丰富
底线:实验室(而实验室无关32,询问更多与51考核相关的内容)的环境:与人相处
————这几天多和讲师搭话,除夕记得问候那些人
————完成作业最大
底线:蓝桥杯省一
底线:四级,开学考试
三、数据手册——通讯协议的时序
(一)lqb【如何检查——网上的驱动程序是否可以用,如何调整】【进阶强化-01】单总线温度传感器DS18B20的基本原理与应用开发-小蜜蜂笔记 (xmf393.com)
<1> 先将 onewire.c文件和onewire.h文件拷贝到当前工程下。
<2> 打开 onewire.h文件,检查文件代码是否完整,并确认总线引脚定义是否和CT107D的硬件对应,即P1^4。如果不对应,则将其修改过来。
<3> 打开 onewire.c文件, 研读各个底层驱动代码的具体实现,初步判断是时序的延时是否合理,如有明显错误,则将其修改过来。
【如何使用——底层驱动面向外设编程】
<4> 根据DS18B20的工作原理和操作流程,编写读取温度结果和处理温度数据的函数,这是进行DS18B20应用开发中最重要的一个环节。
<5> 根据得到的温度结果,刷新数码管显示。
—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
(二)lqb【掌握到一个外设后做的笔记的范本】
单总线数字温度传感器DS18B20的基本原理及开发要点-小蜜蜂笔记 (xmf393.com)
内容:
开发资源
概述,硬件:内部储存结构,数据格式及处理,时序(图+文);数据帧:重要指令,流程,函数名步骤,具体代码;
运用案例
—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
(三)jkd【如何阅读数据手册】
<数据手册的内容>:
功能现象+外设介绍
硬件规范:内部框图+流程图+以及其他一些涉及软件规范的具体知识
时序:时序图(电平变化+时间解释+衔接);
底层驱动:发送/接收一位,8位的函数;其他功能的函数;+流程图
数据帧(面向外设):操作流程;指令名+指令数(宏定义方便代码一目了然)
模块化文件管理,底层驱动编写思路:
四、今日具体收获
(一)DS18B20数据处理
·PRE:参考资料:<JKD2_0:0:0~0:43:0> + <XMF_部分笔记>
16位数据temp已经合并好了
只求整数,则直接右移四位,保留整数部分即可
(1)保留n位小数得第一种方法:————————(XMF:10^n倍得“整型小数”)————————
temp>>=4;temp = temp * 10^n *0.0625; //2进制去小数;10进制空小数
lsb &= 0x0f;lsb = lsb * 10^n *0.0625; //2进制取小数; 10进制得小数(整型小数)
temp = temp + lsb;(10^n倍得“整型小数”)
得到的是正确的10进制结果的10^n的值,分位数,取小数点,就可以得到正确的结果
(2)保留n位小数得第一种方法:——————(JKD:float存小数,10^n倍强转整型)——————
float temp + temp存好16为数据;
保留n位:
temp = temp*0.0625;
float T = DS18B20_READ(); //内存——显示
if(T<0) {LCD_SHOWCHAR(2,1,'-'); T = -T;} | 第一列是正负号
else {LCD_SHOWCHAR(2,1,'+');} |
LCD_SHOWNUM(2,2,T,3); //函数形参是unsigned int, 强转保留整数部分
LCD_SHOWCHAR(2,5,'.') //2~4列是整数部分,第5列就是小数点
LCD_SHOWNUM(2,6,(unsigned long)(T*10^n)%10^n,4)//提取小数的方法:||10^n得到整型小数,
||求某位的数:求余
【收获感悟】:
有些时候,某个外设的学习/工程中某个功能的实现所需要的<某种算法>/其他什么就会很难解决
然而要【做好心理准备】:
别想着总顺顺利利,一定有难点 + 难点就是需要去解决
+困难就是机会 + 技术积累(看+试)
下一步:(目前:DS18B20+显示)+ EEPROM:<JKD2_0:43:0~未知>
—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
(二)DS18B20——启航班
·(1)DS18B20_READ()的特别之处
结构体=数组【lsb,msb】+T
有判断是否复位成功
调用DS18B20时会暂停T0:避免写DS18B20的期间,进入中断SERVICE_T0
编写onewire底层驱动时用的是T1
ppt上T的合并没写
ppt上顺序有点怪
P4SW |= 0X20控制蜂鸣器
五、今日看到的一些有趣的东西
(一)、了解稚辉君
目的:找到一些idea、project、direction,exprience
途径:个人网页
方法:他做的什么事情?我为什么感兴趣?我能做吗?怎么做?
事情:
最小fpga
大二结束的暑假_成电校内飞思卡尔比赛_平衡组_预习自平衡_第一次接触arinuo_蛋黄
大四结束的暑假_个人项目_?_对自平衡原理有了更深刻的理解_?_nano_
大四结束的暑假_个人项目_?_?_两天搞定_天气盒子
大四结束的暑假_国外某迷宫循迹小车_?_买不到,自己造_?_
(二)、每天每1h记录自己的时间使用
六、每日计划
(1)记录每小时的执行
写+调试出qhb板子的onewire+DS18B20,
完成数码管显示一位小数、按键切换数字,按键加减数值
ds1302:参考过去几天的博客,来决定学习过程
(2)记录自己想到的事,判断是不要做的还是要做的,统计数量
没劲的时候:
不要做:———————————————————要做:
看无针对性的嵌入式视频和无内容的短视频 看稚辉君的个人主页,找其他了解他的渠道
过信息 有“针对性且有下一步的目的的记录信息,