STM32
文章平均质量分 81
初出茅庐的小李
技术创造价值,分享产生快乐
展开
-
初出茅庐的小李博客之串口数据解析
串口通信是单片机中最常见的通信方式之一,最近有个需求需要解析上位机发来的数据,简单记录一下解析的思路跟过程。原创 2024-03-30 15:36:08 · 668 阅读 · 0 评论 -
初出茅庐的小李博客之NEC码介绍
NEC码,全称为NEC红外通信协议,是一种广泛应用于红外遥控通信的协议标准。它具有明确的时序和数据格式,确保了遥控设备之间的可靠通信。NEC码的基本结构包括引导码用户地址码用户地址反码命令码命令反码和结束码有的遥控器一直按下可能还会有重复码。NEC码的通信过程是基于脉宽编码(Pulse Width Modulation)的原理。发送端将每个二进制位编码为一系列的脉宽,通常使用占空比来区分逻辑0和逻辑1。一个典型的NEC码数据帧以一个引导码开头,包含一个特定的脉宽组合,用于标识数据的起始。接下来是。原创 2024-03-30 15:31:53 · 822 阅读 · 0 评论 -
初出茅庐的小李博客之串口屏开发一个音乐控制器UI
嵌入式系统人机界面:用作嵌入式系统的人机界面(HMI),显示系统状态、参数调节等信息。工业控制:作为工业控制设备的显示器,显示设备运行状态、报警信息等。智能家居:用于智能家居系统的显示控制,如显示温度、湿度等环境信息。广告机:作为广告机的显示屏,显示广告内容和交互式操作。医疗设备:用作医疗设备的显示器,显示患者信息、医疗数据等。串口屏由于具有简单、灵活、易于控制等特点,为设备的信息显示和交互提供了便利。原创 2024-03-16 15:16:12 · 657 阅读 · 0 评论 -
初出茅庐的小李博客之TobudOS移植到EVB_AIoT开发板
这个开发板是由TobudOS开源社区联合意法半导体、南京厚德物联网设计的一款高性能IoT开发平台,主控芯片是STM32H750XBH6。原创 2023-12-09 22:46:44 · 1207 阅读 · 0 评论 -
初出茅庐的小李博客之C语言文件包含
头文件在C语言中是非常重要的组成部分原创 2023-11-25 17:34:07 · 451 阅读 · 0 评论 -
初出茅庐的小李之C语言必备知识预处理
编译预处理就是在编译源代码之前进行的一系列处理,将源程序中的一些特殊命令进行展开或处理,生成扩展的源代码。这些特殊命令通常以“#”开头,占单独的行,语句尾部不需要加分号。原创 2023-11-25 17:25:08 · 981 阅读 · 0 评论 -
初出茅庐的小李博客之C语言必备知识枚举体
enum 枚举类型名 {枚举元素列表 } 枚举变量列表;可以先声明类型再定义变量,也可以同时进行。原创 2023-11-25 12:06:50 · 501 阅读 · 0 评论 -
初出茅庐的小李博客之C语言必备知识共用体
共用体是一种**构造数据类型**,有时候也称之为联合体。它的用途:使几个不同类型的变量共占一段内存。原创 2023-11-25 10:46:39 · 496 阅读 · 0 评论 -
初出茅庐的小李博客之SPI工作模式
SPI有四种模式,分别是0、1、2、3模式。0模式:时钟空闲时为低电平,数据在时钟的下降沿采样,上升沿输出。1模式:时钟空闲时为低电平,数据在时钟的上升沿采样,下降沿输出。2模式:时钟空闲时为高电平,数据在时钟的下降沿采样,上升沿输出。3模式:时钟空闲时为高电平,数据在时钟的上升沿采样,下降沿输出。时钟极性决定空闲电平 0空闲电平为低电平 1空闲电平为高电平。时钟相位决定采样边沿 0是第1边沿 1是第2边沿。原创 2023-10-15 11:43:40 · 1255 阅读 · 6 评论 -
初出茅庐的小李博客之单片机基础知识
**电源电路**: 提供适当的电源电压和电流以供单片机正常运行。这可能包括稳压电路和滤波电路,以确保电源的稳定性。**时钟电路**: 单片机需要一个稳定的时钟信号来同步其内部操作。时钟电路可以是晶体振荡器或陶瓷振荡器,负责提供时钟频率。**复位电路**: 这个电路负责在系统上电时将单片机复位到初始状态。通常包括一个复位按钮和一个复位电路。原创 2023-10-15 11:19:08 · 185 阅读 · 0 评论 -
初出茅庐的小李博客之根据编译时间生成软件版本号
在C语言中,有一些特殊的宏定义,用于获取当前编译日期和时间等信息。__DATE__ 宏printf("编译日期:%s\n", __DATE__);这个宏会在编译时被替换为一个字符串,表示编译源代码的日期。通常,它的格式类似于"Sep 11 2023",表示月份、日期和年份。__TIME__ 宏printf("编译时间:%s\n", __TIME__);这个宏会在编译时被替换为一个字符串,表示编译源代码的时间。通常,它的格式类似于"12:34:56",表示小时、分钟和秒。原创 2023-09-11 21:08:30 · 437 阅读 · 0 评论 -
初出茅庐的小李博客之数制与编码知识
数字量和模拟量是两种用于表示和处理不同类型数据的概念,常见于电子和计算机系统中。它们在信号处理、传感器技术、通信和控制系统中有不同的应用。在许多应用中,数字量和模拟量之间需要相互转换。例如,传感器通常收集模拟数据,但计算机处理和显示数字数据。这需要模拟-数字转换器(ADC)来将模拟信号转换为数字信号,并数字-模拟转换器(DAC)用于将数字信号还原为模拟信号。这些转换器在许多现代电子设备中起着关键作用,使数字系统能够与物理世界互动。原创 2023-09-11 18:38:09 · 135 阅读 · 0 评论 -
初出茅庐的小李博客之STM32F103C8T6音乐控制器实战教程【1】
"USB"代表通用串行总线(Universal Serial Bus),是一种用于连接计算机及其外部设备的标准接口。USB接口允许各种设备(如打印机、存储设备、键盘、鼠标、摄像头等)通过单一的标准接口与计算机通信和交换数据。USB标准经过多次升级,逐渐演变为不同版本,每个版本都引入了新的功能和改进。原创 2023-09-01 19:02:33 · 1468 阅读 · 0 评论 -
初出茅庐的小李博客之USB设备开发快速上手
常见的USB设备:U盘、鼠标、MP3、移动硬盘、数码相机、键盘、游戏杆、USB摄像头、USB打印机、USB扫描仪、USB话筒、USB网卡、USB显示器等。我这里就以STM32F103C8T6为主控芯片,目的是开发一个USB设备用于跟电脑PC机进行通信实现电脑音量的控制,我称之为音乐控制器项目。USB设备模式。原创 2023-08-23 12:02:06 · 477 阅读 · 0 评论 -
初出茅庐的小李博客之STM32CubeMx配置USART1增加打印功能
串口打印信息在开发项目过程种非常重要,这里使用CubeMx配置生成代码简直太高效了原创 2023-08-21 17:17:40 · 364 阅读 · 0 评论 -
初出茅庐的小李博客之STM32CubeMx驱动WS2812B实现幻彩(超详)
ws2812.c文件内容//显示红色RGB数据/*二维数组存放最终PWM输出数组,每一行24个数据代表一个LED,最后一行24个0代表RESET码*//*功能:设定单个RGB LED的颜色,把结构体中RGB的24BIT转换为0码和1码参数:LedId为LED序号,Color:定义的颜色结构体*/原创 2023-08-20 21:59:37 · 1630 阅读 · 5 评论 -
初出茅庐的小李博客之STM32CubeMx配置定时器的编码器模式
STM32CubeMx的使用比较方便,注意一点就是如果修改代码尽量写到英文的注释中去,这样即使再重新修改CubeMx配置重新生成代码也不会改变原来的程序,否则原来的代码就没了,别问我咋知道的血泪的教训啊!!!原创 2023-08-15 20:41:46 · 805 阅读 · 0 评论 -
初出茅庐的小李博客之认识编码器
正转的时候信号线A先输出信号,信号线B后输出 A相超前B相90度 证明是正转反转的时候信号线B先输出信号,信号线A后输出 B相超前A相90度 证明是反转定时器A相引脚B相引脚编码器模式TIM1PA8PA9TI12TIM2PA0PA1TI12TIM3PA6PA7TI12TIM4PB6PB7TI12TIM5PA0PA1TI12TIM8PC6PC7TI12。原创 2023-08-12 20:39:53 · 385 阅读 · 0 评论 -
IP地址知识
IP地址是计算机网络中用于唯一标识和定位设备的数字标识。它使得网络设备可以相互通信和交换数据,实现互联网的功能和服务。IP地址在网络通信、寻址和路由、安全等方面发挥着关键的作用。原创 2023-07-12 19:53:36 · 749 阅读 · 0 评论 -
初出茅庐的小李之函数指针与回调函数代码
**函数指针**是指向函数的指针变量。它允许我们将函数作为参数传递给其他函数或将函数作为返回值返回。函数指针的类型与所指向的函数的类型相匹配。**回调函数**是一种通过函数指针来实现的机制。在使用回调函数的情况下,我们可以将一个函数的指针传递给另一个函数,然后在后者中调用该函数来完成特定的任务。回调函数常常用于事件处理、异步编程和插件架构等场景。原创 2023-07-12 19:04:18 · 109 阅读 · 0 评论 -
初出茅庐的小李博客之机智云获取网络实时时间(NTP)
网络时间同步现在有2种同步协议NTP和PTP,NTP与PTP不同在于时间戳的产生位置。NTP是通过软件来记录协议相关网络包的发出和到达时刻,同步精度可以达到优于10ms。NTP 是网络时间协议(Network Time Protocol),他用来同步网络中各个计算机时间的协议。在机智云串口协议中,支持获取 NTP 网络同步时间的功能。原创 2023-07-08 15:49:41 · 850 阅读 · 2 评论 -
初出茅庐的小李博客之RTC时间设置
代码仅仅在Dev平台上测试,具体设置还要在硬件上进行验证!原创 2023-06-19 00:38:43 · 404 阅读 · 0 评论 -
初出茅庐的小李博客之STM32F103C8T6的内部FLASH是如何划分的
STM32的内部Flash主要用于存储程序代码(固件)和只读数据。1. 程序代码(固件):内部Flash是存储微控制器的程序代码的主要地方。它包含了应用程序的指令集,包括启动代码、中断处理程序、函数和其他执行代码。这些代码定义了系统的功能和行为。通常是编译生成的HEX文件或者BIN文件。2. 只读数据:内部Flash还可以用于存储只读数据,如常量、配置信息和校准数据等。这些数据在程序执行期间是只读的,不会被修改。3. Bootloader:一些STM32芯片内置了Bootloader,它是一个特原创 2023-06-18 22:53:48 · 3018 阅读 · 1 评论 -
初出茅庐的小李博客之时间相关概念记录
日常生活中我们经常听到北京时间几点几分,还会听到所谓美国东部时间,等等,那么时间到底是如何记录呢?原创 2023-06-13 16:28:10 · 506 阅读 · 0 评论 -
初出茅庐的小李博客之常见字符串函数使用
按字典顺序是一种基于字母或字符的比较方式,类似于字典中单词的排列顺序。在 C 语言中,字符串的比较操作是按照字典顺序进行的。比较字符串中对应位置的第一个字符。如果两个字符不相等,那么根据它们的ASCII 值来确定它们的大小关系。较小的字符被认为是在字典中较早的位置较大的字符被认为是在字典中较后的位置。如果两个字符相等,则继续比较下一个字符,直到找到不相等的字符或遇到字符串的结尾(即遇到空字符 ‘\0’)。如果其中一个字符串到达结尾而另一个字符串还有剩余字符,则被认为到达结尾的字符串较小。原创 2023-06-10 23:13:25 · 457 阅读 · 0 评论 -
初出茅庐的小李博客之STM32F103实现CAN通信
开漏输出模式(Open-Drain Output):在该模式下,CAN发送引脚被配置为开漏输出,只能提供低电平输出,而高电平状态是通过外部上拉电阻拉高到逻辑高电平。在这里,设置了中断通道为USB_LP_CAN1_RX0_IRQn,主优先级为1,次优先级为0,并使能中断。推挽输出模式(Push-Pull Output):在该模式下,CAN发送引脚被配置为推挽输出,可以提供较高的驱动能力,能够输出高电平和低电平两种电平状态。最后,在CAN_Config函数中进行了CAN总线的配置和初始化,并完成了中断的设置。原创 2023-06-10 18:43:45 · 3337 阅读 · 1 评论 -
Keil 5 MDK 发律师函警告了,如何用STCubeIDE开发标准库的程序(STM32F103C8T6为例)
ARM 官方发律师函了,那就用CubeIED来开发STM的芯片吧原创 2023-05-27 19:14:37 · 3020 阅读 · 2 评论 -
STM32的位带操作
STM32本身不支持位操作,它发明了一种位带操作来让32的某些资源支持位操作。这两个区域一个是 SRAM 区的最低 1MB 空间,令一个是外设区最低 1MB 空间。这两个 1MB 的空间除了可以像正常的 RAM 一样操作外,他们还有自己的位带别名区,位带别名区把这 1MB 的空间的每一个位膨胀成一个 32 位的字,当访问位带别名区的这些字时,就可以达到访问位带区某个比特位的目的。位带别名区就是就是就是本来位的区域,变成了字的区域。原创 2023-04-30 12:04:19 · 1272 阅读 · 1 评论