常见的嵌入式 Shell 方案: FinSh msh:RT-Thread 的 TingSH Letter shell cmd parser nr micro shell 还有个于振南的 ZN'Shell,由 FinSh 改进过来。 MyShell ZN'Shell 改个名字,改个 Logo 不带参数
常用 SPI 接口 Flash 芯片厂商: 华邦 WinBond(国产) 兆易创新 GigaDevice(国产) 旺宏 MXIC(国产) 镁光 Micron 美国微芯 MicroChip
首先 STM32 要支持,F4 以上部分型号支持。 CCM-SRAM 通过专用的总线与 Cortex-M4 内核直接相连,绕过了 AHB 总线矩阵。这意味着它可以实现零等待周期的访问,提供最高的访问速度和确定性。 因此 DMA 无法访CCM-SRAM 只能被 Cortex-M4 内核访问,不能被 D
G4 COMP_HandleTypeDef hcomp1; void COMP1_Init(void) { hcomp1.Instance = COMP1; hcomp1.Init.InputPlus = COMP_INPUT_PLUS_IO1; // 比较器[+]输入端
中断和事件的区别: 中断是需要CPU参与的,执行中断服务程序。通过自定义中断服务程序,可用来实现特定的功能,通常需要手动清除标志位。 事件(标志位)完全是由硬件自动处理的,不需要CPU参与。事件用来在外设之间通知,比如定时器信号触发ADC采样转换,会自动清除标志位。 STM32 单核心,每个中断源对
在芯片复位之后,所有外设的时钟都是默认关闭,对于用到的外设需要手动打开时钟,这样有利于降低功耗。 时钟树 时钟树的作用: 指导正确配置系统和外设时钟 指示外设运行时钟频率限制 外设时钟源
RTC(Real Time Clock)实时时钟,是一个可以为系统提供精确的时间基准的元器件,RTC一般采用精度较高的晶振作为时钟源,有些RTC为了在主电源掉电时还可以工作,需要外加电池供电。 RTC 时钟的功能: 当主电源掉电时,电压调节器会自动切换供电。备用电池供电时,以下仍能正常工作: RTC
对于使用电池供电的电子设备,因电池容量较小,因此很有必要控制功耗,延长设备的使用时间。 必须开启 PWR 时钟,否则电源模式、电压调节器、RTC等关键功能不能使用。 标准库、HAL库中会默认开启的吗??? 单片机耗电量 查看数据手册。 电源系统结构
DMA(直接存储器存取)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输,数据的传输无须 CPU 干预,这就节省了CPU的资源来做其他操作。 外设与 DMA 的映射: 在参考手册的DMA章节中可以找到这种表。 注意事项:
内存映射 F103内存映射: 在数据手册中 Memory mapping 这个图高速我们 所需要关心的就是: 内存启动地址: 程序存储起始地址:
F103: #ifndef __I2C_BUS_H #define __I2C_BUS_H #include "stm32f1xx_hal.h" #include "gpio_mapping.h" #define I2C_SDA_GPIO GPIOB #define I2C_SDA_PIN G
DMA 描述符 MAC 外设高速 DMA,数据起始地址在哪里、数据长度是多少、这一块缓冲区是谁控制(CPU 或 DMA)、当前包是单段还是多段 等这些信息,要不然DMA咋知道怎么处理数据。
26. FMC—扩展外部SDRAM — [野火]STM32库开发实战指南——基于野火挑战者开发板 文档 电脑的内存条实际上是由很多内存颗粒(SDRAM芯片)组成的一个模块。 而单片机直接与一个SDRAM芯片连接。 含有 FMC 外设的单片机才能连接SDRAM,FSMC不支持SDRAM,支持SRAM,
在硬件确实连接的情况下,gpio没有输出,可能的原因: 时钟没开 没正确初始化 一些特殊引脚如PC13不适合作为gpio,灌电流能力弱啥的 一标准库中默认的是复用功能,需显式的修改为gpio功能 一个案例:使用spi功能 虽然PB15没有复用 GPIO_PinAFConfig(GPIOB, GP