推荐阅读最新更新时间:2024-11-09 16:52
【超低功耗系列三】BAM 模式和 Stop 模式的选择
这篇文章主要和大家讨论一下 BAM和stop模式 的选择问题。首先我们来看一下BAM模式和stop模式分别是什么。 BAM模式 BAM模式使数据用通信外设进行传输,但是MCU的其他部分处于低功耗模式,一般的工作方式可能会选用一个RTC加一个可以工作在这个模式下的外设再加一个DMA和SRAM,SRAM可以是系统的SRAM 1,也可以是SRAM 2,在不需要CPU干预的情况下就可以自行做数据采集,一旦数据采集到CPU需要处理的条件,再去把CPU唤醒,所以我们可以看到BAM模式从本质上实现了一个协处理器的功能。 Stop模式 Stop模式是CPU Cortex-M内核时钟被关断之外,内核供电域的时钟也被停止了,所以在stop模
[单片机]
浅谈QSPI的特点以及QSPI的三种工作模式
意法半导体STM32F7系列MCU采用高性能的ARM Cortex-M7核心,借助ST的ART Accelerator™和L1缓存,STM32F7微控制器可提供Cortex-M7内核的最高理论性能,而无论代码是从嵌入式闪存还是由外部存储器执行的:1082 CoreMark / 462 DMIPS在216 MHz f CPU。带有新外围设备的智能架构。可利用STM32系列丰富的外设资源来外扩SRAM芯片。STM32F7支持QSPI. 意法半导体MCU STM32F7系列释放了Cortex-M7内核,AXI和多AHB总线矩阵,用于互连内核,外围设备和存储器。具有高达2MB的嵌入式闪存,在某些设备上具有读-写功能。两个用于以太网的通
[单片机]
在Mac OS X中搭建STM32开发环境(3)
在上两篇文章中,我们先后编译和安装了ST-Link2和交叉编译工具,在大家确认安装成功以后,可以做一个小Demo来测试一下是否成功。 (三)Demo (1)首先下载我做好的工程文件 http://pan.baidu.com/s/1hq9jU9e (如果分享链接失效,请联系我QQ:291402127),下载完成后,解压到你的用户文件夹(~/)中,目录结构如下: 在这里,我已经给大家编译好了,main.bin就是已经编译好的文件,大家可以直接烧写。 (2)手动编译 cd到stm32f4-discovery文件夹中,运行 make clean 清理编译成功的文件。 然后运行 make 编译过程中应该会出现以下信息: 完成
[单片机]
STM32 USART 使用DMA 详解
前言(绕开吧): 这段时间由于我们的项目Manibus板卡需要融入 WIFI, BLT, 网口,CAN,串口的多位一体通讯,互不干扰,而且可以相互调用彼此进行数据通讯,这里为了节省MCU资源,所以就使用DMA的方式来进行串口 和 ESP8266的通讯,接下来就介绍一下具体的操作内容! DMA具体的不介绍,总的来说,他就是一个中转站,数据给DMA,他帮你传递或接受,你只要读就行了!! 接下来看代码! void localUsartDMAConfig(void){ DMA_InitTypeDef DMA_InitStructure; RCC_AHBPeriphClockCmd(RC
[单片机]
STM32自打包的UART串口通讯编程方法
在对通讯时间要求比较高的时候,就需要自己对UART的通讯底层直接进行操作。我以STM32单片机为例,讲一下比较快速的UART编程方法。——其实不止是STM32这么处理,我以前使用过51的单片机,TI的MSP单片机,三菱的16位单片机,都可以采用这种方法。 基本的处理思路如下: 1. UART接收的处理方法 打开UART的接收中断,每收到一个字节就放到接收缓冲区,同时更新接收指针。当连续100ms没有收到接收字符,则认为本次帧接收完毕,置位帧接收完成标志,由主程序进行处理。 2. UART发送的处理方法 将需要发送的数据放到发送缓冲区,设置发送长度。然后发送第一个字节,并打开发送中
[单片机]
stm32之S6D04H0 液晶驱动(寄存器版)
1、初始化命令问题:在S6D04H0中,命令是八位,参数也有第一次,第二次,次数之分,与一般的命令是八位或十六位,参数是一次性的十六位不同(如下图) 2、这些命令形式不同是不是有什么影响 3、是不是还没有设置关于横屏竖屏 4、这块LCD是我从单片机学习板上取过来的,会不会电平有什么问题,结果发现,IO口仍然是3.3v逻辑,然后,两边的vcc则需要5v,而且这块液晶上也集成了5v转3.3v芯片 而且后来去网上查了,大部分lcd不会出现这种情况 这个在此lcd的驱动芯片手册中也可查到 5、我尝试用了网上说兼容的型号HX8347-G的代码,用了后却丝毫没有半点反应 6、由于一直没搞懂fsmc的寄存器设置,网上关于它的寄存器设置
[单片机]
STM32库函数USART_SendData的缺陷和解决方法
2.1 问题及现象 使用USART_SendData()函数非连续发送单个字符是没有问题的;当连续发送字符时(两个字符间没有延时),就会发现发送缓冲区有溢出现象。若发送的数据量很小时,此时串口发送的只是最后一个字符,当发送数据量大时,就会导致发送的数据莫名其妙的丢失。 如: for(TxCounter = 0;TxCounter RxCounter; TxCounter++) USART_SendData(USART1, RxBuffer ); 2. 原因 此API函数不完善,函数体内部没有一个判断一个字符是否发送完毕的语句,而是把数据直接放入发送缓冲区,当连续发送数据时,由于发送移位寄存器的速度限制(与通信波特率有关),导
[单片机]
ch32f103和stm32的区别
STM32 系列是意法半导体公司旗下的 ARM Cortex-M3 和 Cortex-M4 微控制器,系列产品将 MCU 和专用模块集成到单一芯片中,广泛应用于消费电子、医疗、工业、汽车及通信等领域。常见的 STM32 系列有 STM32F1、STM32F2、STM32F4、STM32L0、STM32L4 等。 而 STM32 的一个子系列就是 STM32F103,这是一款采用基于 ARM Cortex-M3 架构的 MCU,由于其性价比极高和易用性,被广泛应用于各种应用中,特别是消费电子和轻工业市场。 下面就详细介绍一下 STM32F103 和 STM32 的区别。 1. 架构 STM32F103 和 STM32 基于同样的 A
[单片机]