- 博客(30)
- 收藏
- 关注
原创 python的虚拟环境(Anaconda和VScode安装和配置)
一.什么是虚拟环境二.虚拟环境相关工具区分三.venv基本使用和原理四.虚拟环境的必要性五.在IDE中使用虚拟环境六.保存和复制虚拟环境
2024-09-23 22:34:56 204
原创 ili9341数据手册中的常用命令
根据液晶屏的要求,在发送显示数据前,需要先设置显示窗口确定后面发送的像素数据的显示区域。函数设置显示窗口后,再向液晶屏发送像素数据时,这些数据就会直接显示在它设定的窗口位置中。设置完扫描方向后,代码中。起始坐标,宽度、高度转化成命令参数的格式,写入到液晶屏中,从而设置出一个显示窗口。最符合我们的阅读习惯,扫描方向与文字方向一致,都是从左到右,从上到下,所以。与文字方向不一致,要想实现同样的效果非常麻烦,也没有实现的必要。控制液晶屏时,还有一个非常重要的参数,就是设置液晶屏的扫描方向.
2024-07-26 13:12:01 1095
原创 FSMC模拟8080时序及地址的计算
STM32F1 系列芯片使用 FSMC外设来管理扩展的存储器,FSMC是 Flexible Static Memory Controller 的缩写,译为灵活的静态存储控制器。它可以用于驱动包括 SRAM、NOR FLASH以及 NAND FLSAH 类型的存储器。FSMC的外设结构图如上图所示右边是FSMC外设相关功能的控制引脚。
2024-07-25 18:47:29 1286
原创 stm32——lcd液晶显示
与控制SRAM时一样,控制FSMC使用NOR FLASH存储器时主要是配置时序寄存器以及控制寄存器,利用ST标准库的时序结构体以及初始化结构体可以很方便地写入参数。
2024-07-24 12:48:21 2009
原创 c语言——运算符
sizeof可以用来计算一个变量或常量、数据类型所占的内存字节数。1.运算符的定义:运算符就是在c语言中程序执行运算的逻辑符号。三目运算符,它需要3个数据或表达式构成条件表达式。(表达式)/函数名(形参表)++变量名/变量名++--变量名/变量名--sizeof(表达式)整型表达式%整型表达式。sizeof的几种形式。数组名[常量表达式]表达式2: 表达式3。
2024-07-21 12:44:58 798
原创 c语言——常用的输出函数
1. printf的定义:printf函数称为格式输出函数。功能是按照用户指定的格式,把指定的数据输出到屏幕上面。2. printf函数的基本格式:0hlll%d%f%sprintf函数要输出不同类型的字符串,需要不同的格式符。字符串。
2024-07-21 11:43:06 1929
原创 stm32——串口
USART 是 Universal Synchronous/Asynchronous Receiver/Transmitter 的缩写,即通用同步/异步收发传输器。串口通讯的基本参数:串口通讯的速率标志一个数据帧的开始,且固定是低电平数据帧的有效载荷,1为高电平,0为低电平·校验位:用于数据验证,根据数据位计算而来(奇偶校验)用于数据帧间隔,固定为高电平注意:这里我们 可以看到一个为8位数据一个为9位数据,他们的校验位就是一个用无校验,一个用奇偶校验。
2024-07-19 14:24:27 1115
原创 stm32——MCU启动方式
1、第一种启动方式是用户最常用的,是STM32内部的Flash,一般使用ST-Link和Jlink下载程序时,就是下载到这里面,下载完成后,程序根据下载配置从Flsah里面启动。原文链接:https://blog.csdn.net/qq_43064170/article/details/97142362。2、第二种启动方式是系统存储器启动方式,即串口下载(ISP),普中和正点原子开发板用一根USB线进行下载。3、第三种启动方式是STM32内嵌的SRAM启动,该模式适用于调试。
2024-07-14 19:28:33 151
原创 stm32——创建基础工程模板
打开stm32的头文件在8296的位置有一个use_sidperiph_driver的字符串我们要将这个字符串复制到定义里面这样固件库的工程模板就配置好了。
2024-07-13 14:25:09 311
原创 WS2812b彩灯(DMA+PWM)
1.级联电路2.数据传输该芯片是通过数据传输的时间来判断数据是0码还是1码的。此时就会有PWM的频率计算:3.级联的数据传输第一个数据缓存·第一个24位有第一个模块接收并缓存·第二个24位会被第一个模块转发到第二个模块上并缓存·第三个24位会被第一个和第二个转发到第三个模块上并缓存·第四个24位......·第N个24位......复位信号第二个数据缓存·第一个24位有第一个模块接收并缓存·第二个24位会被第一个模块转发到第二个模块上并缓存。
2024-07-06 14:23:36 1840
原创 stm32——中断优先级
抢占优先级:高抢占优先级可以打断正在执行的低抢占优先级中断。响应优先级:当抢占优先级相同时,响应优先级高的先执行,但是不能互相打断抢占和响应都相同的情况下,自然优先级越高的先执行。自然优先级:中断向量表的优先级。注意:数值越小,优先级越高。
2024-07-06 10:07:28 551
原创 keil中文件路径(绝对路径和相对路径)
绝对路径:指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。相对路径: 指由某个文件所在的路径引起的跟其他文件(或文件夹)的路径关系注意点:关于相对路径这个时候我们就会想为什么要相对路径呢?直接绝对路径不就好了吗?这是因为我们在最底层的文件夹里面可能有很对的小的文件夹,如果文件夹比较少的化用相对路径没啥,但是如果文件夹特别多的时候我们添加绝对路径的话就相当的繁琐了,而如果我们用相对路径直接在要调用的时候用相对路径的符号引导就好了。
2024-07-04 15:54:33 979
原创 移位寄存器74HC595(stm32)
74HC595的功能:实现串行输入,并行输出,有扩展io的功能。74HC595里面有2个8位寄存器:移位寄存器和存储寄存器。74HC595是一款低噪声,低功率,高速的coms移位寄存器,包含一个8位串行输入,并行输出的移位寄存器及带有三态输出控制的8位d型存储器。移位寄存器和存储器分别由独立的时钟提供信号,时钟的上升沿触发移位寄存器和存储器。管脚说明· 14脚:DS(SER)串行数据输入引脚· 13脚:OE 输出使能控制脚,它是低电平才能使能输出,所以接GND。
2024-07-04 12:17:29 332
原创 lvgl——对象
对象具有父对象及子对象。而父对象可以作为子对象的容器,父对象可以有无限多的子对象。如果父对象的位置改变了子对象也会一起改变。通俗的讲就是。
2024-05-17 16:10:14 369
原创 LVGL学习笔记(持续更新)
然后,我们选中这行右击选第二个就能到达该函数文件;然后我们在这里编写代码;注意:屏幕是没有父类的基础对象。在LVGL中,所有对象都在 lv_obj_t 这个结构体的基础上演变而来。
2024-05-15 16:18:13 1822
原创 c语言——break和continue
break的作用:break是指终止整个循环。continue的作用:continue是指终止本次循环进行下一次循环。
2024-04-13 19:25:21 389 1
原创 [keil]L6200E: Symbol XXX multiply defined .O...错误解决方法
具体说就是在其中一个c文件中定义一个全局变量key,然后在另一个要使用key这个变量的c文件中使用extern关键字声明一次,说明这个变量为外部变量,是在其他的c文件中定义的全局变量。请注意我这里的用词:定义和声明。例如在main.c文件中定义变量key,在common.c文件中声明key变量为外部变量,这样这两个文件中就能共享这个变量key了。
2024-03-29 18:22:40 5207 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人