笔记
文章平均质量分 62
初出茅庐的小李
技术创造价值,分享产生快乐
展开
-
初出茅庐的小李博客之ESP8266获取自己B站粉丝数据
其中ArduinoJson 库需要单独安装,其他选好开发板就会自动安装。Arduino IDE + ESP8266 NODEMCU板子。注意:本博客仅作为自己学习记录分享、欢迎大家留言讨论~ESP8266发起HTTP请求+解析json数据。这个非常简单,直接搜官网地址下载即可。安装ArduinoIED 开发发环境。原创 2023-10-22 19:11:47 · 381 阅读 · 0 评论 -
嵌入式笔记之操作系统相关【1】
FreeRTOS是一款小巧、高效的实时操作系统,适用于多种处理器架构,如ARM、MIPS、AVR、PIC等。它具有可移植性和开源性质,被广泛应用于许多不同领域的嵌入式系统开发中。:uC/OS是一款商业实时操作系统,可用于各种不同的处理器架构。它的优点在于具有较低的内存和处理器占用率,以及高度可靠性和安全性。它也有一个免费的版本叫做uC/OS Lite,可用于非商业用途。:Linux是一个开源的操作系统,适用于各种处理器架构。它具有强大的功能和广泛的应用场景,可用于许多不同的嵌入式系统中。原创 2023-04-08 11:46:18 · 277 阅读 · 0 评论 -
ST的固件库如何下载?
ST的固件库如何下载原创 2023-03-26 23:11:40 · 1435 阅读 · 0 评论 -
毕业设计常用温度测量模块之DS18B20温度传感器介绍
DS18B20是一种单总线数字温度传感器,测试温度范围-55℃-125℃,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。单总线通信,意味着没有时钟线,只有一根通信线。单总线读写数据是靠控制起始时间和采样时间来完成,所以时序要求很严格,这也是DS18B20驱动编程的难点。原创 2023-03-25 14:56:26 · 4635 阅读 · 0 评论 -
毕设常用云平台之机智云如何使用
准备官方的固件准备烧写软件ESP8266烧写软件非机智云提供进行烧写。原创 2023-03-12 17:16:10 · 2501 阅读 · 2 评论 -
毕设常用模块之舵机介绍以及使用方法
PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%.STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。原创 2023-03-09 21:51:28 · 2974 阅读 · 0 评论 -
毕业设计常用模块之温湿度模块DHT11模块使用
DATA 用于微处理器与 DHT11 之间的通讯和同步,采用单总线数据格式,一次传送 40 位数据,高位先出。原创 2023-03-09 20:46:49 · 1943 阅读 · 0 评论 -
毕设常用云平台OneNET对接测试TCP方式透传实现
所谓的鉴权信息是区分产品下的设备,可以用产品唯一序列号也可以根据产品规划统一编码,我这里采用第二种,PARSER_NAME:用户自定义解析脚本的名称,用户上传脚本时指定的唯一字符串标识。AUTH_INFO:设备鉴权信息,在设备注册时,用户创建设备时指定的唯一字符串标识。产品是一类设备的描述,创建产品后会产生一个产品ID这个ID就是产品的身份证号码。PID:产品ID,创建产品时OneNET生成的产品唯一性数字标识。XYDLNSF000 信盈达岭南师范000。添加产品成功后可以在产品下添加设备。原创 2023-03-03 10:49:49 · 2097 阅读 · 3 评论 -
毕业设计常用模块之语音模块MY1680使用
MY1680U-12P 是深圳市迈优科技有限公司自主研发的一款小巧的集成MP3模块。采用MY1680U-16S MP3主控芯片,支持MP3、WAV格式双解码,模拟U盘下载。模块内置FLASH存储芯片,1-16M容量可选;也可外接U盘或USB数据线连接电脑更换FLASH的音频文件。该模块内置3W功放,可以直接驱动3W的喇叭,使用更方便。产品特性支持 MP3 、WAV 高品质音频格式文件,声音优美。24 位 DAC 输出,动态范围支持 93dB,信噪比支持 85dB。原创 2023-02-16 11:10:58 · 5853 阅读 · 0 评论 -
初出茅庐的小李第117篇博客指详细记录OLED屏幕显示原理
OLED屏幕总共有132个列,每个列都有自己的编号编号就是0 1 2 3 4 5 6 7 …131 总共132个列。把0x64拆开 拆成0x06 跟 0x04。0x04跟0x00组合成0x04 其实是无变化。0x06跟0x10组合成0x16。列地址需要拆分成高四位跟低四位。一个列地址设置的指令。一个是行地址设置指令。原创 2022-12-26 16:02:03 · 517 阅读 · 0 评论 -
初出茅庐的小李第116篇博客之结构体数组在颜色存储中的使用
结构体数组就是数组,用来装结构体变量的,那什么是结构体变量呢?结构体变量是用结构体类型定义的变量,那什么是结构体类型呢?//颜色名字 Color_e Color_Enum;//颜色枚举值 unsigned int Color_Val;//颜色真彩色值 } Color_t;. Color_Name = "黄色" , . Color_Enum = YELLOW , . Color_Val = 0x00FFFF00 , } , [ RED ] = {原创 2022-08-21 21:48:23 · 197 阅读 · 0 评论 -
初出茅庐的小李第118篇博客项目笔记之国产GD32F103RCT6基础工程创建
内核:ARM Cortex-M3主频:108 MHz,只读存储器(ROM):256 KB随机存储器(RAM): 48KB通用接口: SPI 、I2C、UART 、I2S、CANUSB、OTG、Ethernet、Multi-Purpose Serial Peripheral多用途串行外设控制器模数转换器:3通道 12位精度的ADC数模转换器:2通道12位精度的DAC温度范围: -40 °C到85 °C。...原创 2022-08-02 21:12:50 · 1578 阅读 · 0 评论 -
初出茅庐的小李第115篇博客之智能浇花器实战分享(4)
STM32F103C8T6的芯片,串口3,适配一个1ms的定时器,本地数据发送给平台靠的是串口,机智云官方网站机智云|物联网云平台,AIoT开发云平台,Aiot软件开发平台、AIoT开发云平台、工业物联网解决方案(gizwits.com)继电器开关项目板上的继电器状态既要上报到云平台,又要能被平台下发的数据影响。传感器上报云平台信息,这些信息不允许被平台上任意更改。创建的数据点能够下发信息到项目板,也能从项目板上赋值。信息就是数据,温度,湿度,光照,继电器开关。项目板上的数据如何发送给平台。...原创 2022-07-27 21:19:47 · 1277 阅读 · 2 评论 -
初出茅庐的小李第114篇博客项目笔记之机智云智能浇花器实战(3)-基础Demo实现
机智云入网原创 2022-07-25 02:32:46 · 853 阅读 · 0 评论 -
初出茅庐的小李第113篇博客项目笔记之机智云智能浇花器实战(2)-基础Demo实现
初出茅庐的小李第112篇博客项目笔记之机智云智能浇花器实战(1)-基础Demo实现原创 2022-07-24 02:15:00 · 530 阅读 · 0 评论 -
初出茅庐的小李第112篇博客项目笔记之机智云智能浇花器实战(1)-基础Demo实现
机智云智能浇花器原创 2022-07-23 22:47:56 · 420 阅读 · 0 评论 -
初出茅庐的小李第111篇博客之中英文点阵字符显示原理
字符分中文字符和英文字符,英文字符就是我们经常说的ASCII字符,中文字符就是指汉字以及一些中文常用的汉字和符号。原创 2022-07-17 18:03:55 · 450 阅读 · 0 评论 -
初出茅庐的小李第110篇博客之详细剖析STM32中__NVIC_SetPriorityGrouping(uint32_t PriorityGroup)函数
这个函数是在内核文件中实现的该函数实现了把一个数的结果赋值给一个寄存器的指定位置,这里的指定位置是高16位和8910位,8910位是影响中断优先级分组的,通过设置这三个位的值这三个位的值有000001010011100101110111这8种情况,这样就实现了中断优先级的分组。具体分组情况如下(PriorityGroup取值0-7)......原创 2022-07-16 16:49:45 · 908 阅读 · 1 评论 -
初出茅庐的小李第109篇博客之如何打开Keil中文件的真是路径
keil中会有很多文件,有模板工程必备文件夹,还有一些用户自定义的文件夹。这种文件有的时候是以库的形式添加进来的,我们要想知道其准确的位置。1类型文件一般是用户自定义文件一般都知道路径在哪里。2类型文件下面有个下划线证明当前在这个文件里编辑。这些文件夹根据用户的需求自己放置对应的文件。需要看这些文件到底在什么位置。...原创 2022-07-16 14:52:06 · 485 阅读 · 0 评论 -
初出茅庐的小李第108篇博客二进制打印
C语言在格式化打印的时候有很多格式控制,比如十进制打印用%d输出,十六进制用%x输出,八进制用%o格式输出,但是当我们期望看一个数据的二进制的时候就必须借助计算器或者其他比较不方便于是考虑写一个简单的二进制打印函数。...原创 2022-07-16 09:57:57 · 682 阅读 · 0 评论 -
初出茅庐的小李第107篇博客之STM32常用下载地址
STM32常用下载地址原创 2022-06-11 10:17:11 · 207 阅读 · 0 评论 -
初出茅庐的第106篇博客之Python实现一个TCP转COM的客户端
为什么要写这样一个代码本来是用串口助手给开发板发送数据让开板根据所发数据进行响应,但是考虑到疫情原因板子不能在自己手上,这边想要远程测试命令不方便就考虑用TCP网络调试助手,但是TCP网络调试助手只能给TCP客户端发送消息,不能转发给串口,于是就有了接下来造轮子的故事了为什么用Python这还用说吗》因为简单,但是Python我也是现学的,理解的不深刻。凑合着用工于善其器必先利其器Python环境搭建官网直接下载的最新安装包Python 3.10.4 (tags/v3.10.4:9d38120原创 2022-04-09 22:51:56 · 3384 阅读 · 2 评论 -
初出茅庐的小李第105篇博客之I2C时序函数指针形式
/*I2C总线的时序描述*/static uint8_t IIC_clear_bus(const IIC_PIN* pin){ uint8_t bus_clear = 0; if (pin->error) return bus_clear; pin->SDAOutPut(1); pin->SCLOutPut(1); pin->Delay(); pin->SCLInputConfig(); pin->SDAInputConfig(); if (pi原创 2022-04-09 22:25:58 · 461 阅读 · 1 评论 -
初出茅庐的小李第104篇博客之编译器错误记录
编译报错declaration may not appear after executable statement in block解决办法ADC代码没有错误编译报错解决办法放开注释原创 2022-04-09 22:25:04 · 136 阅读 · 0 评论 -
初出茅庐的小李第103篇博客之CC2530资源介绍
CC253x设备简介CC253x 设备系列使用的 8051 CPU 内核是一个单周期的 8051 兼容内核。它有三个不同的存储器访问总线 (SFR、DATA 和 CODE/XDATA),以单周期访问 SFR、DATA 和主 SRAM。它还包括一个调试接口和一个 18 输入的扩展中断单元.拥有 18 个中断源 ,内存仲裁器位于系统中心内存仲裁器有四个存取访问点,访问每一个可以映射到三个物理存储器之一:一个 8-KB SRAM、一 个闪存存储器和一个 XREG/SFR 寄存器。它负责执行仲裁,并确定同时到同原创 2022-02-12 16:13:18 · 4481 阅读 · 0 评论 -
初出茅庐的小李第102篇博客之聊一聊函数指针
函数指针题外话函数是函数指针是指针指针函数是函数函数指针是指针函数指针的本质函数指针的本质是指针,指针的本质是地址,函数指针指向的对象是某一个函数。函数指针一般用作函数的参数,函数的参数是函数的四个要素之一,函数包括函数名,函数返回值,函数参数,函数体。假如我们写了一个函数经常被调用,比如再单片机中经常使用的I2C通信中经常使用的I2C起始信号,那我们就可以把我们实现好的起始信号函数的名字作为参数传递给某个函数,这个函数名字就可以赋值给一个函数指针变量。如何声明一个指针?比如我们声明一个指原创 2022-02-09 18:43:54 · 292 阅读 · 0 评论 -
初出茅庐的小李第101篇博客之聊一聊NVIC
NVICNVIC的全称是Nested Vectored Interrupt Controller,即嵌套向量中断控制器。对于M4内核的MCU每个中断的优先级都是用寄存器中的8位来设置的,8位的话就可以设置2^8 = 256级中断。但是实际中用不了这么多的中断优先级,所以芯片厂商根据自己生产的芯片做出了相应的调整。我们所熟知的STM32F4系列单片机也并没有使用CM4内核的全部东西,而是只用了它的一部分。例如STM32F40xx/STM32F41xx总共有92个中断,STM32F42xx/STM32F43原创 2022-01-20 14:11:35 · 848 阅读 · 0 评论 -
初出茅庐的小李第99篇博客FreeRTOS创建任务
开始任务创建三个任务/* 创建开始任务 */ xReturn = xTaskCreate((TaskFunction_t )Start_task, (const char* )"start_task", (uint16_t )START_STK_SIZE, (void* )NULL, (UBaseType_t )START_TASK_PRIO, (TaskHandle_t* )&原创 2022-01-19 10:13:21 · 243 阅读 · 0 评论 -
初出茅庐的小李第100篇博客之C语言挖坑(后面慢慢填)
C语言数据类型基本数据类型构造数据类型指针数据类型C语言的运算符算术运算符关系运算符逻辑运算符位运算符其他运算符 (复合运算符)C语言控制语句选择语句 if else switch case循环语句 while for do-while跳转语句goto return continue breakC语言九条控制语句C语言函数函数定义函数声明函数调用C语言宏定义和条件编译C语言的内存分配C语言编程思想需求出发 -》思路分析-》代码实现-》功能测试原创 2022-01-19 09:26:42 · 437 阅读 · 0 评论 -
初出茅庐的小李第98编博客之FreeRTOS学习笔记
FreeRTOS是什么?在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对于uC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、原创 2022-01-19 09:25:17 · 202 阅读 · 0 评论 -
初出茅庐的小李第97篇博客之Visual Studio 2022 环境下编译 LVGL
LVGL是什么?LVGL (Light and Versatile Graphics Library)是一个开源图形库,提供创建嵌入式 GUI 所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用。LVGL的特点是什么?Small footprint 轻量化64 kB 闪存和 8kB RAM 足以用于简单的用户界面。Many widgets 部件丰富有多达30 多种小部件中进行选择并轻松自定义它们。Any platform 多平台在任何平台上使用 LVGL,例如 NXP L原创 2022-01-16 18:50:30 · 1710 阅读 · 1 评论 -
初出茅庐的小李第96篇博客之STM32F103单片机JTAG端口重映射
STM32有很多IO口,IO口占据了绝大多数的管脚,但是有的管脚天生就不平凡被安排了更牛逼的工作那就是下载程序用,如果想要它由牛逼变成普通就要对本事下载接口的管脚进行功能重新映射。映射的关系由寄存器进行控制也可以库函数来实现,但是映射的方式不多,也就三种 1. 全功能 SWJ,JTAG没有JTRST。 2. 禁用JTAG,启用SWJ。(PB3/PB4/PA15 可重映射为其他功能) 3. 完全禁用 SWJ和 JTAG。(PB3/PB4/PA13/PA14/PA15 均可重映射为其原创 2022-01-05 00:01:23 · 1201 阅读 · 0 评论 -
初出茅庐的小李第95篇博客之Keil警告记录
warning: #61-D: integer operation result is out of range转载 2022-01-04 22:41:40 · 211 阅读 · 0 评论 -
初出茅庐的小李第94篇博客之STM32F407随机数(RNG)模块应用
随机数是什么在我的理解中,随机数就是一个随机的数。这是数学上的概念。但是在编程中随机数是什么样子的呢?随机数可以通过一些函数产生但是产生的随机数都是伪随机数,这里就涉及到了一些。概念比如什么是伪随机数?随机数的分类随机数分为伪随机数和真随机数。弱随机数特点是通过纯软件算法,按照一定的规律生成一个随机值。但从名称即可看出,该类随机数的特点是只具备一定的随机性,并不能做到不可预测性,即并不是一个真正的随机数。例如通过MCU的时间作为种子去生成一个随机数,因为时间是不停变化的变量,所以生成的随机数也不停原创 2021-12-26 00:38:22 · 1187 阅读 · 0 评论 -
初出茅庐的小李第93篇博客之学习记录
STM32H7 以太网的 MMC 中断在公众号看了一篇文章 解决问题的思路很受启发遂记录以备日后查阅STM32H7 以太网的 MMC 中断博文链接转载 2021-12-18 11:07:42 · 123 阅读 · 0 评论 -
初出茅庐的小李第92篇博客之看门狗总结
什么是看门狗呢? 看门狗是一条狗吗?显然不是,它其实是一种外设只不过呢这种外设有点看门狗的意思。试想一下有个人家里比较富,而且有一些宝贵的古董在院子里,但是呢他家里还没有有到能请得起一个保安,这时候它怎么办养一条狗还是养的起的。对吧,假设有人想要闯入他家进行偷东西,这时候这个狗是不是就会叫,叫声就是一种信号,如果这个时候主人听见这条狗在叫那么说明什么是不是说明不正常,这个时候主人就会过来查看,就会避免古董被盗,对吧?你该说了这条狗跟看门狗定时器有什么关系,其实在很多单片机的内部都有看门狗定时器,看门原创 2021-12-18 10:29:42 · 2194 阅读 · 0 评论 -
初出茅庐的小李第91篇博客之C语言指针
学如逆水行舟不仅则退今天老板写了一篇文章让我帮忙校验一下,于是我就有了下面的代码标题的感悟#include <stdio.h>typedef unsigned char uchar;int main(void) { int i, *ip = &i; printf("i的地址空间是:%p\n",ip); //uchar *niu; //niu指向的地址空间存放的数据是uchar类型的数据 //uchar **sp; sp是一个指针变量 uchar *原创 2021-12-14 23:59:05 · 982 阅读 · 0 评论 -
初出茅庐的小李第89篇博客之Systick总结
systick 是什么?systick是个定时器这个定时器隶属于内核,它跟NVIC紧密相连可以产生中断,异常编号是15。SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号: 15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而原创 2021-12-14 00:36:50 · 556 阅读 · 0 评论 -
初出茅庐的小李第88篇博客之专业英语积累
专业英语词汇积累Nested Vector Interrupt Controller :嵌套向量控制器(NVIC)a system tick timer:系统定时器 (Systick)an optional Memory Protection Unit:可选择的内存管理单元 (MPU) SystemControl Block:系统控制块 (SCB)Application Programming Interface:应用程序接口(API)a Non-Maskable Interrupt :不可屏原创 2021-12-13 00:46:40 · 140 阅读 · 0 评论 -
初出茅庐的小李第87博客之NVIC处理外部中断总结
STM32F4NVIC总结原创 2021-12-13 00:41:54 · 2126 阅读 · 0 评论