1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

I2C

    很久没有使用网站进行记录笔记了。前段时间更喜欢于手写记录。现在有点想念。进入I2C。  1.  I2C总线就等同于一个小型的局域网,通信的过程可当做是一个TCP通信。   2 .理解I2c通信的起始信号,应答信号。停止信号。    起始信号:通知从机做好通信的准备。    应答信号:有应答(SDA为低电平)和无应答(SDA为高电平
作者:xiao 分类:硬件笔记 浏览:

再见熟悉的陌生人

        一直不敢再去寻找深藏在某个角落的联系方式,只知道在那里有唯一的联系方式,一直心里害怕在茫茫世界里再也找不到你,今天由于重装了系统,装好后才知道唯一的联系方式也被删除了,,,心里一阵痛,但是自己潜意识里告诉自己放下,那就再见吧,今天就是最后的永别了,十年后,二十年后,三十年后,,,也不会再知道关于你的一切,祝你幸福亲爱的陌生人。2022/05/09再见陌生人----罗志祥
作者:xiao 分类:股票 浏览:

c语言中##是什么意思

符号 ## 则是连接符号,由两个井号组成,其功能是在带参数的宏定义中将两个子串联接起来,从而形成一个新的子串。执行完A ## B后变为AB(连接A和B并去掉空格)。下面通过具体实例来说明##的工作原理:假设程序中已经定义了这样一个带参数的宏:#define paster( n ) printf( "token" #n " = %d", token##n )同时又定义了一个整形变量:int token9 = 9;现在在主程序中以下面的方式调用这个宏:past
作者:xiao 分类:软件笔记 浏览:

RW内核----消息、任务、调度、定时器

二、RW内核



        RW内核的指导文档为《RW-BT-KERNEL-SW-FS.pdf》。其主要包括以下三个部分:



        1)Message,消息处理机制。



        2)Taskand Schedule,任务和调度。



作者:xiao 分类:软件笔记 浏览:

蓝牙服务和UUID理解

蓝牙服务的组成使用蓝牙对外提供服务的设备,需要有对应的服务功能,如蓝牙耳机,他需要提供音频播放的功能,这种具体的功能,就是蓝牙服务。这个服务分为服务、特性、属性三个部分:服务(Service)服务(Service) 可以理解一个房间,当这个房间为空的时候他什么也不是,不能提供任何的服务功能,所以,房间里面至少需要有一个或多个家俱,不同的家俱有不同的功能,这就是特性(Characteristic)。不同的服务(Service)应该有不同的编号(UUID),用以区分不同的服务(Service)。就像
作者:xiao 分类:硬件笔记 浏览:

stm32外设移植(大致流程)

移植定义:        将某平台的源码运行到新的平台。技巧:      关键修改跟硬件平台相关的代码,该代码一般为如下:       1、引脚初始化       2、引脚控制与读取       3、数据收发       4、硬件中断    &nbs
作者:xiao 分类:软件笔记 浏览:

stm32的GPIO复用设置

所谓“复用功能”,是指单片机的引脚既可以做普通GPIO使用,也可以作为内部外设控制器的引脚来使用。比如我们来看看STM32F103xx单片机的PA5引脚,如下图:首先,PA5可以做为普通GPIO来使用;其次,如果作为外设的引脚,它可以作为SPI1的时钟(SPI1_SCK)、DAC的输出通道1(DAC_OUT1)或者ADC的输入通道5(ADC12_IN5)。PA5支持的三种外设(SPI1、DAC、ADC)在同一时刻只能选择一种,选择的方法是开启相应外设的时钟,并使其它外设的时钟保持关闭状态。如果
作者:xiao 分类:硬件笔记 浏览:

蓝牙BLE---->Host和Controller

Host和Controller,这两部分在不同的蓝牙技术中(BR/EDR、AMP、LE),承担角色略有不同,但大致的功能是相同的。Controller负责定义RF、Baseband等偏硬件的规范,并在这之上抽象出用于通信的逻辑链路(Logical Link);Host负责在逻辑链路的基础上,进行更为友好的封装,这样就可以屏蔽掉蓝牙技术的细节,让Bluetooth Application更为方便的使用。
作者:xiao 分类:硬件笔记 浏览:

用python代码对双色球机选单注和复式中奖情况模拟测试,得出彩票是真的,你不中是你运气不好

用python代码对双色球机选单注和复式中奖情况模拟测试,得出彩票是真的,你不中是你运气不好



不多说直接上代码,因为这代码是随便写的,也懒得改了,好多过程其实都可以定义成函数,我都没做,还有变量名也很垃圾,凑活着看吧,因为我当时录了一个视频就是为了说双色球开奖是真的,不存在作弊什么的,写了一个测试代码,所以有个b站的小伙伴想看代码,我就粘出来了,也懒得改了,代码是在jupyter notebook里写的,分段执行的,所以很不严谨,参考下就好:





作者:xialibing 分类:编程小记 浏览:

堆栈总结

作者:xiao 分类:硬件笔记 浏览:

单片机的code(keil中运行)值超过某个值的时候程序就不能正常跑的原因之一

    我遇到这个问题的时候,一开始怀疑自己的程序写的不对,然后发现我程序只要多一行就会跑错,不管多的是什么代码,然后就发现了code只要超过7782这个值程序就会跑乱,但是我查看了我的flash是32K的,不可能程序区不够啊,就特别奇怪,百度说可能是什么堆栈溢出,但是程序没有用到堆栈,但是呢这个给了我一个提示,或许我的代码真的有啥溢出了呢,数组还是什么;后面发现程序里面有划分flash程序区和数据区的变量,这个变量太小了,导致划分的程序区小,所以出现溢出
作者:xiao 分类:硬件笔记 浏览:

领悟

知识要运用起来才能体会到它的真正用法
作者:xiao 分类:硬件笔记 浏览:

红外遥控———RC_5编码———定时中断解析出每个按键对应的二进制

    RC_5编码类型的红外遥控,RC_5编码的特点(每一位用时1.8ms,即一位的一个周期是1.8ms;先是2位起始位、1位控制位、5位系统位、6位指令码;其中的起始位都是11,;控制位是为了辨别一直按住还是松开了再按的,当一直按住时这一位则不变;系统码对于同一个遥控器来说,每个按键的系统码都是一样的;指令码则是我们需要的;还需要注意的是我们接收到的位都是反码,所以我们接收到的起始位是00;先高后低则是0,先低后高则是1)。所以基于上面的知识点,我们利
作者:xiao 分类:硬件笔记 浏览:

单片机的时钟理解---讲的很好理解

1.概述简单的说,时钟是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。每个时钟tick,系统都会处理一步数据,这样才能让工作不出现紊乱。2.原理首先,任何外设都需要时钟,51单片机,stm32,430等等,因为寄存器是由D触发器组成的,往触发器里面写东西,前提条件是有时钟输入。51单片机不需要配置时钟,是因为一个时钟开了之后所有的功能都可以用了,而这个时钟是默认开
作者:xiao 分类:硬件笔记 浏览:

单片机休眠与唤醒-----低功耗的总结

    刚开始接触单片机休眠的时候,我以为单片机休眠后就停止了程序运行,其实不是的,他依然在跑程序(看休眠模式,如果是stop模式,中断等程序还在继续跑),只不过他跑的速度变慢了而已。   如果要求很低功耗, 在单片机休眠前要把耗电的硬件都关掉(当然根据需求设置)。   还有要说的就是, 要解决一个问题,你得知道这个问题涉及的点,然后去把来龙去脉了解清楚,才能更好的解决问题;也就是所谓的知己知彼,百战不殆。就比如我这
作者:xiao 分类:硬件笔记 浏览:

关于keil4中:warning C316:unterminated conditionals

今天用Keil4写程序时遇到这个问题:warning C316:unterminated conditionals跑了几个论坛,在审视了一遍代码之后,知道了原因:  像类似XX.C(99):warning C316:unterminated conditionals这种警告的话XX.c文件有一个凌乱的条件编译或预编译。因为C语言中有些头文件中的预编译或宏定义,那么条件编译就避免不了。写条件编译时,可能有忘写一个基本的语句。比如说,你用了条件编译#ifndef而忘记写#endif。因为他们本来就是
作者:xiao 分类:硬件笔记 浏览:

strtok函数查找标记

int main(){  	static char whit[]="6xiao6xiali6cong6naigai6dahu";  	char *token;  	char *line="6";  	token=strtok(whit,line);  	printf("%s\n",token);
作者:xiao 分类:软件笔记 浏览:

c和指针笔记----------更新中

实型

float:4字节,有效数字7位

double:8字节,有效数字15~16位

作者:xiao 分类:软件笔记 浏览: