STM32——DAC篇(基于f103) 传感器信号采集改变电信号,通过ADC转换成单片机可以处理的数字信号,处理后,通过DAC转换成电信号,进而实现对系统的控制。dac.c/* DAC初始化函数 *//* 初始化DAC *//* 不使用触发功能 *//* DAC输出缓冲关闭 *//* 配置DAC通道1 *//* 开启DAC通道1 *//* DAC MSP初始化函数 *//* 设置通道输出电压 *//* 如果值大于等于4096, 则取4095 *//* 12位右对齐数据格式设置DAC值 */main.c。
STM32——ADC篇(基于stm32f103) HAL_Init();/* 初始化HAL库 *//* 设置时钟, 72Mhz *//* 延时初始化 *//* 串口初始化为115200 */led_init();/* 初始化LED *//* 初始化LCD */adc_init();/* 初始化ADC *//* 先在固定位置显示小数点 */while (1)/* 显示ADCC采样后的原始值 */printf("原始值:%d",adcx);
STM32——DMA篇 * 内存到内存 DMA传输 *//* 使能DMA1时钟 *//* 与目标地址相关 *//* 与源地址相关 *//* 内存到内存是不支持循环模式 */HAL_Init();/* 初始化HAL库 *//* 设置时钟, 72Mhz *//* 延时初始化 */led_init();/* 初始化LED */key_init();/* 初始化按键 *//* 初始化蜂鸣器 */LED0(0);/* 先点亮LED0 */dma_init();
STM32——TIMER(定时器)篇 使用纯软件(CPU死等)的方式实现定时(延时)功能缺点:1. 延时不准确 2. CPU死等。主要特性:16位递增计数器(计数值:0~65535)16位预分频器(分频系数:1~65536)可用于触发DAC在更新事件(计数器溢出)时,会产生中断/DMA请求主要特性:16位递增、递减、中心对齐计数器(计数值:0~65535)16位预分频器(分频系数:1~65536)可用于触发DAC、ADC在更新事件、触发事件、输入捕获、输出比较时,会产生中断/DMA请求。
STM32——串口 技术笔记!波特率计算公式:baud="fck" /(16∗USARTDIV);"其中fck"是串口的时钟,如:USART1的时钟是PCLK2,其他串口都是PCLK1波特比率寄存器(BRR):把USARTDIV的整数部分写入位[15:4], USARTDIV的小数部分写入[3:0]如何使用寄存器操作的方式设置波特率?波特率设置通用公式推演1. 控制寄存器1(CR1)该寄存器需要完成的配置:位13:使能USART位12:配置8个数据位位10:禁止检验控制位5:使能接收缓冲区非空中断位3:使能发送位
STM32——WWDG(窗口看门狗) 本质:能产生系统复位信号和提前唤醒中断的计数器。特性:递减的计数器;当递减计数器值从 0x40减到0x3F时复位(即T6位跳变到0);计数器的值大于W[6:0]值时喂狗会复位;提前唤醒中断 (EWI):当递减计数器等于 0x40 时可产生;喂狗:在窗口期内重装载计数器的值,防止复位。作用:软件异常,精准时间把控。
STM32——中断篇 中断是单片机正在执行程序时,由于内部或外部事件的触发,打断当前程序,转而去处理这一事件,当处理完成后再回到原来被打断的地方继续执行原程序的过程。在ARM体系结构中,中断通常由外设或外部输入产生,有时也可以由软件触发。中断是单片机系统处理紧急或突发事件的重要方式,如定时器溢出、按键输入、串口数据到达等。
STM32——GPIO篇 GPIO是通用输入输出端口(General-purpose input/output)的英文简写,是所有的微控制器必不可少的外设之一,可以由STM32直接驱动从而实现与外部设备通信、控制以及采集和捕获的功能。GPIO口可配置为多种输入输出模式,如输入浮空、输入上拉、输入下拉、模拟输入、开漏输出、开漏复用功能、推挽式输出以及推挽式复用功能等。STM32单片机的GPIO被分为很多组,每组最多有16个引脚,不同型号的 MCU 的GPIO个数是不同的。引脚电平:0V~3.3V,部分引脚可容忍5V(FT)。