推荐阅读最新更新时间:2024-11-13 09:17
stm32f407硬件spi读写sst25vf闪存flash代码
void SPI_FLASH_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; SPI_InitTypeDef SPI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; /* Enable the SPI periph */ RCC_APB2PeriphClockCmd(FLASH_SPI_CLK, ENABLE); /* Enable SCK, MOSI and MISO GPIO clocks */ RCC_AHB1PeriphClockCmd(FLASH_SPI_SCK_GPIO_CLK | FL
[单片机]
stm32F407之USART6的DMA工作方式
昨天调试了USART6的DMA工作模式,今天补发上这篇笔记。 力求简洁,stm32的DMA就不介绍了,不了解的可以搜索一下。这里重点介绍一下DMA的外设地址如何确定,这个是网上很少涉及但是很重要的一块,如果不清楚如何确定外设寄存器地址就无法进行DMA功能,这里以stm32F407的USART6为例介绍,参考手册为 RM0090 Reference manual 。 在进行DMA参数配置时有这样一项 DMA_InitStructure.DMA_PeripheralBaseAddr = ?;这句是要确定Memory与Peripheral数据传输时的外设数据地址,因为这里我们用到的是USART6从Memory的数组中取出数据并发送给上位
[单片机]
STM32F407-跑马灯
硬件准备(STM32F407ZGT6) 1.初始准备 1.1打开Template模板,在工程目录下新建HARDWARE文件夹 1.2 新建在HARDWARE路径中新建led.c , led.h两个文件,在工程中新建HARDWARE Groups,并将led.c添加进去,将led.h添加进头文件目录中。 1.3硬件连接 2.程序编写 2.1 库函数 头文件:stm32f4xx_gpio.h 源文件:stm32f4xx_gpio.c 1个初始化函数: void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct
[单片机]
轻松搞懂STM32F407串口通信(USART)
串口通信就是一个码元一个码元的发送数据,并行通信就是多个码元同时发送,码元简单来说就是承载信息的信号单位,如二进制码元就通过高低电平来承载信息,那么一个码元就是一个高电平或低电平。 串口基础标准 串口数据帧格式 这张图描述了串口的一个数据帧格式 1:空闲电平为高电平 2:起始信号为下降沿加上一个位的低电平 3:传输数据(通常为八位的,也有些标准定义为其他位数) 4:校验位,这里分为奇偶校验和01校验,当然也可以没有这个位,也就是不需要校验 (1)奇校验:在数据中,1的个数为奇数该位为1,1的个数为偶数则该位为0; (2)偶校验:在数据中,1的个数为偶数该位为1,1的个数为奇数数则该位
[单片机]
stm32f407的TIM1的中断和PWM
调试了多半天TIM1的中断和PWM,终于算是调通了。遇到了不少问题,也深入了解了TIM1的配置过程。代码如下: /************************************************************ Copyright (C), 2012-2022, yin. FileName: main.c Author: ycw Version : 1.0 Date: 2012.04.25 Description: TIM1 PWM NVIC Version: V1.0 Function List: TIM1 PWM NVIC History:
[单片机]
使用MSO2000和DPO2000调试串行总线
泰克MSO2000和DPO2000系列示波器一个主要的应用是调试串行总线。泰克主要研究结果表明,在所有电子器件设计工程师中,大约有60%的工程师在日常设计和调试事务中要处理串行总线。这些设计人员希望获得某种工具来帮助他们选择性地从串行流中捕获数据,然后分析分组内容和其他相关信号。
在串行总线结构中,一条信号路径可以传送地址信号、控制信号和时钟信号。MSO2000和DPO2000系列示波器提供了一个理想的平台,可以从当前某些最常用的低速串行总线中采集和分析信号,包括I2C, SPI, RS-232, CAN和LIN。MSO2000和DPO2000系列的基本带宽、采样率、记录长度和通道数量完全可以胜任这一工作。而最重要的是
[嵌入式]
STM32F407入门开发: 配置定时器输出PWM方波
第一章 定时器PWM功能介绍 STM32F407的定时器的 TIM6 和 TIM7 是普通定时器,除此之外,其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达4路的PWM输出;在开发四轴无人机、机器人等需要控制大量电机的产品里运用起来非常方便。 第二章 PWM波形输出通道介绍 定时器3的硬件PWM通道:PA6 PA7 PB0 PB1 下面截图是介绍定时器3通道的复用IO口模式配置方式 第三章 配置PWM波形输出代码示例 3.1 在工程中增加pwm.c文件,写入以下代码 #include pwm.h
[单片机]
STM32CubeMX 配置STM32F407 实现HAL库延时微妙方案
先说一下为什么写这篇博客。 不知道大家有没有遇到过这种情况,当你在移植别人的程序的时候,尤其是移植STM32的程序,从标准库移植到HAL库的时候,总是无奈延时微妙函数在HAL库中找不到,delay_us(u8 us); 很多次我都是用毫秒延时代替了, 但是,这样会使得程序的效率大大降低,所以通过参考别人的资料,通过定时器写了延时us函数,延时还是很准确的 1、我所使用的单片机型号及开发环境 **PS**: emmmmm… (这里并不是打广告,只是我个人使用的这个开发板,其他任何的开发板,只要主控芯片一样均可以) 开发环境如图,我是用的Cube+IAR, Keil5也可以的,都一样。 2、使用Cube配置定时器TIM
[单片机]