推荐阅读最新更新时间:2024-03-16 16:17
基于STM32F407主控芯片的发动机转速/相位发生器设计方法分享
摘要 STM32F407包含Cortex-M4内核,共有14路TIM资源,其中TIM2和TIM5具有32位计数功能,其他为16位计数功能。本文将以TIM2实现发动机转速/相位发生器的设计,并通过串口屏幕显示。文章给出了具体的电路的硬件设计及软件设计流程,并给出设计说明。经实践证明,该发生器据有可靠、稳定、精确的特性。 发动机转速传感器是一种感应式传感器,获取发动机转速和曲轴准确角度位置(输入系统)。在飞轮上安装有一个单独用于发动机转速传感器的信号轮。 信号轮被设计成一个带有很多齿段的轮,共分成60个齿段.每当信号轮转过传感器,就会产生一个交流电压,其频率随看转速而变化。频率即是转速的高低.为了识别曲轴位置,信轮在两个齿段之
[单片机]
STM32F407-串口通信基本原理
1.处理器与外部设备通信的两种方式: 并行通信 -传输原理:数据各个位同时传输。 -优点:速度快 -缺点:占用引脚资源多 串行通信 -传输原理:数据按位顺序传输。 -优点:占用引脚资源少 -缺点:速度相对较慢 2.串行通信 按照数据传送方向,分为: 单工: 数据传输只支持数据在一个方向上传输 半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信; 全双工: 允许数据同时在两个方向上传输,因此,全双工通信是两个 单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。 3.串行通信的通
[单片机]
STM32f407---oled屏幕配套取字模软件使用
我使用的是正点原子提供的oled字库,自己用取模软件取字模 PC2LCD2002取模方式设置:阴码+逐列式+顺向+C51格式 附: 代码 //24*24的OLED汉字点阵,包括三个汉字:开、发、板。这三个汉字的点阵库,是利用PCtoLCD2002生产的, //软件设置的取模方式同OLED实验ASCII的取模方式一模一样,字体采用12*大小,一个汉字点阵占用24字节。 const unsigned char OLED_HZK_TBL = { {0x00,0x00,0x1F,0x80,0x11,0x00,0x11,0x00,0x11,0x00,0xFF,0xF0,0x11,0x00,0x11,0x00,0x11,0x0
[单片机]
stm32f407之通用定时器产生PWM波
1.初始化 1.定义相关变量 GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_OCInitTypeDef TIM_OCInitStructure; 2.打开定时器和GPIO时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); 3.配置GPIO口为复用功能输出 GPIO_PinAFConfig(GPIOF, GPI
[单片机]
stm32f407之外部中断使用流程
1.初始化 1.初始化相关结构体 NVIC_InitTypeDef NVIC_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; 2.打开SYSCFG SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0); 3.配置EXTI EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrup
[单片机]
STM32F407学习笔记----GPIO
1、GPIO InitTypeDef 初始化所需要的IO口 typedef struct { uint32_t GPIO_Pin; /*! Specifies the GPIO pins to be configured.指定需要配置的引脚 This parameter can be any value of @ref GPIO_pins_define */ GPIOMode_TypeDef GPIO_Mode; /*! Specifies the operating mode for the selected pins.模式 in/out?
[单片机]
STM32F407 Hal库 串口使用指南
首先,当然是在Cube中进行相应的配置,这个就不多讲了。 之后,在生成的工程中,找到main函数,在/* USER CODE BEGIN 2 */下加入 HAL_UART_Receive_IT(&huart1,Uart1_Data_buffer,n); 这是要给接收到的数据定向,存在Uart_Data_buffer 中。上面函数的第三个参数应该是收到n个字节就触发中断。 然后,在stm32f4xx_it.c的最后面,也就是/* USER CODE BEGIN 1 */下编写 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { 。。。
[单片机]
基于MSP430单片机的智能无功补偿控制器设计
1 引言 随着经济的发展和人们生活水平的提高,各行各业对供电可靠性和供电质量提出了更高的要求。由于配电网处于电网的末端,用户多为低压用户,许多用电器的功率因数很低,且不带补偿装置,这给电网带来很大的功率负担和额外线损,为了维护电力系统稳定、保证电能质量和安全运行,对电网末端变压器进行就地无功补偿很有必要。本文利用TI公司的MSP430F149单片机为核心构成的控制器,实时监测电网的电压、电流,并计算出有功、无功、功率因数,根据用电负荷情况,通过复合开关控制电容器组的自动投、切,实现无功功率的动态补偿,且具有报警功能。该装置安装在电力配电变压器低压侧,用于补偿配电变压器无功功率改善配电变压器的无功潮流,同时该装置也具有辅助调压
[单片机]