推荐阅读最新更新时间:2024-11-09 00:03
【STM32】PWM DAC基本原理(实验:PWM实现DAC)
虽然STM32F103ZET6具有内部DAC,但是也仅仅只有两条DAC通道,并且STM32还有其他的很多型号是没有DAC的。通常情况下,采用专用的D/A芯片来实现,但是这样就会带来成本的增加。 不过STM32所有的芯片都有PWM输出,并且PWM输出通道很多,资源丰富。因此,我们可以使用PWM+简单的RC滤波来实现DAC的输出从而节省成本。 PWM DAC PWM DAC的构成原理 PWM本质上其实就是是一种周期一定,而高低电平占空比可调的方波。实际电路的典型PWM波形,如下图所示: 针对PWM的波形进行以下分析: 高电平阶段:计数器当前值从0-CCRx阶段(总时间=CCRx*每两个计数之间的间隔时间); 低电
[单片机]
stm32—GPIO操作(库函数)
难得有时间,最近想写一下stm32的入门基础。 GPIO的8种方式 1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1 2、带上拉输入GPIO_IPU——IO内部上拉电阻输入 3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入 4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电 5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实
[单片机]
STM32 FSMC 学习笔记
1.FSMC机制 FSMC(Flexihie Static Memory Controller,可变静态存储控制器)是STM32系列中内部集成256 KB以上FlaSh,后缀为xC、xD和xE的高存储密度微控制器特有的存储控制机制。之所以称为 可变 ,是由于通过对特殊功能寄存器的设置,FSMC能够根据不同的外部存储器类型,发出相应的数据/地址/控制信号类型以匹配信号的速度,从而使得STM32系列微控制器不仅能够应用各种不同类型、不同速度的外部静态存储器,而且能够在不增加外部器件的情况下同时扩展多种不同类型的静态存储器,满足系统设计对存储容量、产品体积以及成本的综合要求 1.1 FSMC技术优势 ①支持多种静态存储器类型。STM32通
[单片机]
STM32 配置PC13~PC15
在STM32的数据手册的管脚分配图中可以看到:PC14与OSC32_IN公用一个引脚,PC15与OSC32_OUT公用一个引脚,它们的使用方法如下: 当LSE(低速外部时钟信号)开启时,这两个公用管脚的功能是OSC32_IN和OSC32_OUT。 当LSE(低速外部时钟信号)关闭时这两个公用管脚的功能是PC14和PC15。 备用区域控制寄存器(RCC_BDCR)的LSEON用于控制LSE的开启或关闭。关于这个寄存器的用法请参看《STM3210x技术参考手册》。 文档下面有一段话: PC13,PC14和PC15引脚通过电源开关进行供电,因此这三个引脚作为输出引脚时有以下限制: 作为输出脚时只能工作在2MHz模式
[单片机]
STM32 USART串口DMA 接收和发送的源码详解
硬件平台:STM32F103ZET6; 开发环境:KEIL 4; 先说说应用通讯模式,串口终端的工作方式和迪文屏差不多,终端被动接受MCU发的指令,终端会偶尔主动发送一些数据给MCU(像迪文屏的触摸信息上传)。 串口DMA发送: 发送数据的流程: 前台程序中有数据要发送,则需要做如下几件事 1.在数据发送缓冲区内放好要发送的数据,说明:此数据缓冲区的首地址必须要在DMA初始化的时候写入到DMA配置中去。 2.将数据缓冲区内要发送的数据字节数赋值给发送DMA通道,(串口发送DMA和串口接收DAM不是同一个DMA通道) 3.开启DMA,一旦开启,则DMA开始发送数据,说明一下:在KEIL调试好的时候,D
[单片机]
STM32 FSMC LCD 液晶的驱动—ILI9320
原来老早知道 STM32 具有 带4个片选的静态存储器控制器。支持CF卡、SRAM、PSRAM、NOR和NAND存储器 并行LCD接口,兼容8080/6800模式 这个其实就是FSMC 在这之前我一直使用IO口模拟8080时序感觉操作简单速度也很不错,而且ST官方上的FSMC的说明文档看得实在很晕找不到重点一直没试过FSMC。最近有机会尝试驱动驱动一块2.4的ILI9320由于要接线为了省力气直接使用了 FSMC的接法,顺便整理下写点东西出来。 我想使用12864液晶可能是每个会单片机的基本功了通常用个P0口发送8Bit数据在用一些控制线产生时钟信号,12864使用6800通信方式而小的彩色FTF 或CSTN屏流行8080通信
[单片机]
记一次,粗心导致的设计失误
简介:一个交流采样系统, 交流信号由运放组成信号调理电路, 并有运放做加法运算以后,进入stm32的ADC管脚. 结果测试的时候,发现采样很不准确,插交流有效值算法也没问题. 一个交流采样系统, 交流信号由运放组成信号调理电路,并有运放做加法运算以后,进入stm32的ADC管脚. 结果测试的时候,发现采样很不准确,插交流有效值算法也没问题. 仔细检测,发现信号越小,测量越准! 这很违反尝试,用示波器检测adc输入管脚发现交流正弦信号底部失真,仔细检查,发现原因是由于运放是正负电源供电,运放的输入端加了二极管保护,分别对+12和对地保护,结果交流信号小于0的时候,底部就被削底了,发生了削底失真. 保护二极管正
[单片机]
一文详解STM32端口复用及映射
复用 STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。 哪些端口可以复用为什么,这个查表就可以了 2,如何进行端口复用? 比如AF1要复用到TIM1; 通过设置AFRL寄存器和AFRH寄存器 就可以AF1----- TIM1; 一组IO口有16个 GPIOAF0~15 AFRL负责低八位IO AFRH负责高八位IO 举例 除了ADC或者DAC配置为模拟之外,其他外设都要配置为复用 //完整版 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO
[单片机]