
STM32
文章平均质量分 64
pl0020
这个作者很懒,什么都没留下…
展开
-
F103ZET6使用FSMC和HAL点亮ILI9341
(一)对应关系由STM32内部硬件原理定义,参见STM32F103xE 数据手册 表5 引脚定义(二)PE2 ------> FSMC_A23 地址输入(重要DC)(不同板子可能不同)PD4 ------> FSMC_NOE RD读使能PD5 ------> FSMC_NWE WR写使能PG12 ------> FSMC_NE4 片选(重要)(不同板子可能不同)(三)PG11 ------> LCD_RST 复位PG6 ------> LCD_BK 背光1)16个数据引脚;原创 2023-05-20 01:45:13 · 2522 阅读 · 1 评论 -
延时函数:普通延时,硬件定时器延时,系统定时器延时
此种延时是基于让MCU做一些无意义的循环操作来打发时间,优点是简单易懂,缺点是会占用MCU的处理资源且精度较低,主要用于程序简单、无严格时间要求的场景中。原创 2023-06-14 09:25:09 · 10677 阅读 · 0 评论 -
使用CJSON 解析JSON 结构体数组【典型】
一、CJSON数据结构定义#define cJSON_False 0#define cJSON_True 1#define cJSON_NULL 2#define cJSON_Number 3#define cJSON_String 4#define cJSON_Array 5 //数组#define cJSON_Object 6 //对象or键名typedef struct cJSON { struct cJSON *next,*prev; /*遍历数组或对象链的前向原创 2021-11-20 19:46:37 · 22274 阅读 · 2 评论 -
RT Thread studio同时生成bin和hex文件
一、RTT默认生成bin文件默认选择Raw binary,则项目对应的debug文件夹下生成bin文件;修改成intel的话,则项目对应的debug文件夹下生产hex文件;二、同时生成bin和hex文件项目 属性-C/C++构建-设置-构建步骤-命令arm-none-eabi-objcopy -O ihex"rtthread.elf" "rtthread.hex"...原创 2021-09-02 23:12:40 · 2550 阅读 · 1 评论 -
调度器锁rt_enter_critical() & rt_exit_critical()
一、函数说明void rt_enter_critical(void); /* 进入临界区*/调用这个函数后,调度器将被上锁。在系统锁住调度器的期间,系统依然响应中断,如果中断唤醒了的更高优先级线程,调度器并不会立刻执行它,直到调用解锁调度器函数才尝试进行下一次度。void rt_exit_critical(void); /* 退出临界区*/当系统退出临界区的时候,系统会计算当前是否有更高优先级的线程就绪,如果有比当前线程更高优先级的线程就绪,将切换到这个高优先级线程中执行;如果无更高优先级线原创 2021-08-17 12:38:43 · 4124 阅读 · 0 评论 -
快速排序qsort函数用法
一、qsort函数简介排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等。 看名字都知道快速排序是目前公认的一种比较好的排序算法。因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用。 这就是qsort函数(全称quicksort)。它是ANSI C标准中提供的,其声明在stdlib.h文件中,是根据二分法写的,其时间复杂度为n*log(n)。功能: 使用快速排序例程进行排序头文件:stdlib.h用法:void qsort(void* base,size_t nu.原创 2021-08-17 11:10:47 · 1113 阅读 · 0 评论 -
电源引脚VDD、VSS、VDDA、VSSA、VREF+、VREF-、VBAT
总体电源框图一、名词解释名称 说明 备注 VCC 电路的供电正电压 一般表示模拟信号电源 GND 电路的供电负电压? 表示模拟信号地 VDD 芯片的工作正电压 表示数字信号电源 VSS 芯片的工作负电压 表示数字电源地 VDDA 芯片的工作正电压(模拟) VSSA 芯片的工作负电压(模拟) VDDD 芯片的工作正电压(数字) VSSD 芯片的工作负.原创 2021-08-03 17:35:50 · 32454 阅读 · 0 评论 -
KEIL5 MDK5 快捷键 颜色 自动补全 设置
1. 快捷键设置1.1 点击工具栏右侧的小扳手configuration1.2 点击Short Keys标签,弹出快捷键设置页面1.3 左侧选中功能,右侧输入快捷键完成设置2. 自动补全设置2.1点击工具栏右侧的小扳手configuration2.2如下操作后,点击OK,重启MDK后生效3. 颜色设置3.1还是小扳手3.2选项卡选中“Colors&Fonts”即可设置...原创 2020-05-10 18:46:36 · 5996 阅读 · 0 评论 -
STM32标准库下外设的配置方式
使用STM32标准库,使用的功能如串口USART功能,DMA功能,NVIC功能,I2C功能,SPI功能等都有一个类似的配置流程。先定义端口和引脚(define),再定义初始化结构体(XX_InitTypeDef),然后配置初始化(XX_Config),最后使能一下即可(XX_Cmd)。1. 宏定义端口Port和引脚Pin(#define)1 /**2 * 串口宏定义,不同的串口挂载的总线和 IO 不一样,移植时需要修改这几个宏3 */4 5 // 串口 1-USART.原创 2020-05-10 18:34:26 · 1043 阅读 · 0 评论 -
C语言位操作 - bit 、byte的清零,置1,提取,判断
一、位操作概述针对MCU的嵌入是开发中经常涉及到寄存器的操作,例如GPIO配置低寄存器GPIOx_CRL(共32个bit),有时需要改变其中的一位或者几位bit值,同时不能影响其它bit位的值。例如,需要设置第0位bit=1时,不能简单的设置为:GPIOx_CRL=0x01 ,这样的方法会使得低配置寄存器GPIOx_CRL的其它比特位都置为0。对于二进制位操作来说:不管该...原创 2020-03-12 19:08:32 · 52377 阅读 · 7 评论 -
指针、寄存器、位操作
定义寄存器的绝对地址,并转换为指针进行位操作1、位操作示例一#define PERIPH_BASE ((unsigned int)0x40000000)#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000)#define GPIOB_BASE (APB2PERIPH_BASE+0x0C00)/...原创 2019-11-30 19:05:58 · 1461 阅读 · 0 评论