![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机
文章平均质量分 72
百里之外
…
展开
-
如何查看MCU编译生成的elf(out)文件内容
查看ELF文件内容原创 2024-07-01 15:42:56 · 220 阅读 · 0 评论 -
SPI+DMA传输性能比较
第一次我是以SPI+DMA驱动LCD显示240X82的图片,可以看出显示该图片在有DMA(加DMA中断)的加持下,耗时156us。第二次是我单独用SPI驱动LCD显示240X82的图片,耗时8685us,所以区别还是蛮大的。本文章仅仅简单记录32单片机的SPI+DMA驱动显示屏的性能测试,这里不花费时间介绍SPI和DMA。这里我定时器计数频率分频到1Mhz,最大计数50000次,也是就计数频率1us,周期50ms。(2)SPI的读写接口(非DMA情况下需要使用到)(3)SPI的DMA配置初始化。原创 2023-02-19 01:27:49 · 3201 阅读 · 0 评论 -
CC2642获取主机RSSI值
本篇文章记录使用CC2642作外设,连接手机,获取手机蓝牙的RSSI信号强度。本次的实验是在ProjectZero例程基础上编写实现的,我的思路是打算周期性的读取RSSI值,所以我会先定义一个定时器,然后再定时器的回调事件中去发送读RSSI的命令。本实验获取RSSI的步骤如下:2.初始化一个定时器3.定时器回调函数的编写4.等待事件的处理 在函数ProjectZero_taskFxn中加入一下的语句:5.查看Read Rssi命令的完成处理: 上面的这个Read Rssi命令的完成原创 2022-10-07 16:05:14 · 621 阅读 · 0 评论 -
蓝牙协议之配对和绑定学习笔记
学习和掌握蓝牙协议栈中的配对和绑定原理原创 2022-08-28 22:43:17 · 4296 阅读 · 0 评论 -
RT_threadのQSPI总线设备驱动W25Q
本文仅仅记录使用RTT的QSPI总线设备驱动W25Q原创 2022-04-17 22:48:00 · 1320 阅读 · 0 评论 -
RT_threadのSPI设备驱动W25Q/NM25Q128
本篇文章记录利用RTthread的SPI设备来驱动NM25Q,熟悉RTthread的SPI设备。另外对SPI flash(NM25Q/W25Q)不做介绍,仅仅是按照手册上的时序编写代码。NM25Q和W25Q基本上是一样的,只不过是设备厂商ID不一样。本次用的是一颗NM25Q128芯片做实践。1 将NM25Q挂载到SPI总线上/*先定义一个SPI设备对象*/struct rt_spi_device * sp.原创 2022-04-16 14:27:29 · 2582 阅读 · 0 评论 -
RT_threadのSPI设备学习笔记
前言 SPI作为基本的通信协议,广泛应用在嵌入式产品中,它是一种高速、全双工、同步通信总线,目前接触的较多的是SPI、QSPI,Dual SPI暂时没接触到,这里不对SPI总线基础知识做记录,本文仅仅是Rt_thread系统下的SPI设备学习笔记,学习RT_thread中对SPI设备的封装,从其设备驱动层、设备框架驱动层以及应用层入手学习,最终实现使用stm32的SPI驱动LCD显示屏,用Q原创 2022-03-17 22:22:00 · 1519 阅读 · 0 评论 -
Rt_threadのADC设备学习笔记
ADC(Analog to Digital Converter)模数转换器,它的作用是将外界的模拟信号转化为离散数字信号,什么是外界的模拟信号呢?比较好理解,例如温湿度,无线信号的RSSI强度,声光,角度等等。对于一些低端的微控制器,片上只能依靠另外的ADC转换芯片实现模拟信号的采集,对于一些好一点的单片机,基本上都拥有片上ADC资源。ADC的转换一般过程是:取样->保持和量化->数字编码。 本文为RT_thread操作系统下的ADC设备学习笔记原创 2022-03-14 22:39:25 · 7196 阅读 · 0 评论 -
RT_threadの自动初始化机制
目录前言1. 程序的内存分布2.自动初始化机制2.1 自动初始化原理解析2.2 实践测试自动初始化前言 在刚开始学习单片机嵌入式时,我们初始化一些外设资源都是直接在while(1)前面调用外设的初始化函数,这样写虽然可以清楚的看到系统中用到了哪些外设,但是如果外设很多的话,一连续的初始化函数看起来就有点不舒服。而在RT_thread中存在自动初始化机制,它的原理就是用一个函数表,将要初始化的函数指针加入该表中,遍历该表执行每一个初始化函数。本文记录学习RT_thread的自动初始化机制。1. 程序的原创 2022-03-14 20:13:55 · 1709 阅读 · 0 评论 -
W25Q128数据手册阅读总结
W25Q128数据手册总结:1.描述2.引脚封装3.明白引脚的功能4.了解W25Q的内存结构框架5.了解相关寄存器6.了解指令7.了解标准SPI的SPI模式8.了解SPI的dual模式9.了解SPI的QPI模式10.常用的指令1.描述 W25Q128FV串行Flash内存由可编程的65536页组成,每一页256字节。可以在一时间编程高达256字节的内存。擦除内存可以是按16个页擦除(即一个Sector),128个页擦除(八个Sector),256个页擦除(16个Sector),或者整片擦除。标准S..原创 2021-12-21 00:48:38 · 35688 阅读 · 5 评论 -
FSMC之NOR flash控制器学习笔记
一、FSMC基础知识学习FSMC,即灵活的静态存储控制器。先看下面的FSMC框图。从上图可以了解到stm32内核访问FSMC控制器完全是通过AHB总线来实现,同时可以了解到FSMC内部有两个存储控制器,分别是NOR存储器、NAND/PC卡存储控制器,注意两个控制器公用FSMC地址线和数据线,而其中地址线26条,可以访问64MByte的内存,另外数据读写最多支持16位。再来看看下面的内存映射图:上图展示了stm32寻址的1GB内存,这块内存的起始地址是0x60000000,结束地址是0x9FFF原创 2021-06-19 00:12:43 · 2360 阅读 · 0 评论 -
STM32硬件SPI做从设备笔记
void spi2_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; SPI_InitTypeDef SPI_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//使能GPIOC时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟 RCC_A原创 2021-04-19 01:17:52 · 2383 阅读 · 0 评论 -
NRF24L01双向传输(一对一)
@ NRF24L01双向传输(一对一)简介· 实物(模块非单独芯片):· 芯片引脚定义说明(芯片):· 数据包格式:这里没必要介绍NRF24L01了,相信要用这芯片或者模块的朋友应该提前了解过了。· 寄存器表该芯片有命令寄存器和功能寄存器。在使用每一款芯片之前,要养成查看数据手册的习惯。这是我自己边看边翻译的,可能有翻译地不对的,见谅。命令寄存器表:命令名命令字#数据字节操作R_REGISTER000A AAAA1到5,低位在前读命令/状态寄存器W原创 2021-03-01 00:07:00 · 5333 阅读 · 2 评论 -
软件模拟IIC驱动程序
简介:1.IIC写时序中,主机向从机写入数据后都需要等待应答,保证每次写入成功。2.IIC读时序中,主机接收从机除了最后一个数据不用发送应答之外,其他都需要发送应答。void IIC_Start(void){ SDA_OUT(); //SDA输出 IIC_SDA(1); //SDA_高 IIC_SCL(1); //SCL_低 IIC_Delay(); //延时tSU IIC_SDA(0); //SDA_低 IIC_Delay()原创 2021-02-16 22:05:11 · 1033 阅读 · 4 评论 -
好用的SYSTICK
好用的Systick在core_cm3.h和core_cm4.h头文件里边都有Systick滴答定时器的配置函数。/** * @brief Initialize and start the SysTick counter and its interrupt. * * @param ticks number of ticks between two interrupts * @return 1 = failed, 0 = successful * * Initialise the原创 2021-02-16 12:41:19 · 340 阅读 · 1 评论 -
STM32时钟树总结和时钟配置
总结STM32时钟树和时钟配置预习:(1)5到6个时钟源,HSI、HSE、LSI、LSE、MSI、PLL(细分为主PLL、PLLI2S和PLLSAI)。(2)LSI频率为32KHz左右,仅供看门狗和RTC使用。(3)LSE频率为32.768KHz,作为RTC的时钟源。(4)HSE:OSC_OUT和OSC_IN引脚接4~26MHz的晶振。(5)HSI是高速内部RC振荡器,频率16MHz。(6)MSI(暂时看到它出现在低功耗单片机里),时钟信号由内部RC振荡器产生。其频率范围可以由时钟控制寄存器(原创 2021-02-16 00:07:57 · 1847 阅读 · 0 评论 -
KEIL5编译51单片机程序依赖包
安装KEIL5成功后,打开51单片机程序很多按钮都是灰色,或者编写51单片机程序的时候不能预编译,此时需要下载51单片机PACK包,要么去官网下载(但是要填写个人信息很烦),网上的答案几乎就是这个,要么就是要C币下载(有点坑),刚才帮舍友搞了下,幸好发现我百度云上有C51依赖包,所以在这里分享给大家:https://pan.baidu.com/s/1qVXVi1-Aj-6UzRCFsl1IOQ...原创 2019-12-25 17:34:58 · 7209 阅读 · 14 评论 -
直流电机PID调速
文章写的是基于数字PID控制器的闭环电机速度控制系统,系统以STC89C51单片机为控制核心,通过电机驱动L298N(这里因为所用电机是个小马达,额定电流和堵转电流不算大,所以用的是TC1508S做驱动)控制电机转速,电机转速控制采用PWM控制。在对电机转速进行调速的过程同时,单片机对电机的转速进行实时采集,并在LCD1602显示屏上实时显示电机实际转速。由于PID参数整定的需要,在设计中利用按键...原创 2019-12-07 11:19:32 · 15306 阅读 · 12 评论 -
STM32F1定时器中断
STM32F1的通用定时器包括:TIM2、TIM3、TIM4和TIM5。掌握主要的通用定时器的寄存器:控制寄存器1(TIMx_CR1)、DMA/中断使能寄存器(TIMx_DIER)、预分频寄存器(TIMx_PSC)(它的作用是对时钟进行分频,然后提供给计数器,作为计数器的时钟)、TIMx_CNT寄存器(该寄存器是定时器的计数器,该寄存器存储了当前定时器的计数值)、自动重装载寄存器(TIMx_AR...原创 2019-02-07 00:42:31 · 1587 阅读 · 0 评论