推荐阅读最新更新时间:2024-03-16 16:15
使用stm32的HAL库完成pwm输入模式测量频率和占空比的详细教程
STM32定时器具有PWM的输入捕获模式。 PWM输入捕获是定时器输入捕获的一个特例,单通道的输入捕获只能获取波形的频率,但是PWM输入捕获可以获取到频率和占空比,对应的高低电平宽度也就能获取到。 它的时序如下图所示: 使用cubemx配置方法: 就是使用TIM2的ch1和ch2来捕获一个pwm信号。 这里只测试了update event,我测试55khz使用该分频与计数值可以正常工作,不过第一次捕获的数据是随机数,需要丢弃。另外这里分频值我改成89的时候不太正常,捕获到的占空比出现错误,更改为0之后正常。这里需要注意的是F429的TIM2是在APB1下,时钟频率90Mhz。而TIM1/TIM8则是在AP
[单片机]
stm32 打印数据到PC串口
一、一般情况下,很多人都是利用printf函数重定向来实现的,但是看得不是很明白。 所以,此处利用sprintf函数来实现。 二、整个的思想就是把要打印的数据,放到MCU对PC的串口发送缓冲里。 三、sprintf函数在stdio.h头文件里,所以要想在程序中使用,必须将这个头文件包含进来。 四、示例: void PC_SendChar(uint8_t DataToSend) { RS485_TX_Enable (); USART_SendData (USART1 ,DataToSend); while(USART_GetFlagStatus (USART1 ,USART_FLAG_TC )!=SET ); RS485_RX_
[单片机]
野火STM32 Flash&sd卡模拟U盘
在USB库文件mass_mal.c中添加对flash和sd读写的函数,USB库调用这些函数从而实现模拟U盘的功能 1 //mass_mal.c 2 /* Includes ------------------------------------------------------------------*/ 3 #include ..Usersdcardbsp_sdio_sdcard.h 4 #include ..Userspi_flashfatfs_flash_spi.h 5 #include mass_mal.h 6 #include stdio.h 7 /* Private typedef ---------
[单片机]
STM32 I2C从机发送数据_中断方式
在调试stm32 I2C中断方式发送数据时,发现上篇介绍的内容有很多不足之处,对I2C时序也有了新的认识。 上篇文章介绍在数据发送完成后,发送NACK和STOP,然后向从机DR寄存器写了一个没用的数据,目的是为了清楚传输完成事件。其实文档中说的很明白,再倒数第二个数之后发送NACK和STOP,当时没有理解,现在看来确实是这样。 利用中断方法时,对发送NACK及STOP要求比较严格,调试时在多个位置都测试了下,发现只有在读取寄存器最后一个数据之前发送NACK和STOP,但要在主机接收事件之后,逻辑代码如下: //这段代码顺序不能改变,否则无法终止总线 { /*检测主机接收数据完成事件*/
[单片机]
stm32单片机进入休眠(STOP)模式后无法下载程序等问题解决
利用stm32单片机的休眠模式,使单片机间歇的休眠从而实现低功耗的目的。往往会出现进入休眠后无法唤醒,导致下一次程序烧不进去。通常的解决办法是:一般的开发板或单片机最小系统都会有复位键,按住复位键,点下载,然后松开复位键即可。 我遇到的问题是:误入了stm32(STM32L051C6T6)的STOP模式,又没有写入相应的唤醒方法,导致后续的程序不能下载。使用MDK5 点击load时总会出现No target connected。自己设计的最小系统又没有加入复位键。。。 有以下几种解决办法: 1、可以将单片机的NRST引脚引出来,外接复位键。(关于引脚查看可用ST官方软件STM32cubeMX,很方便) 2、通过IS
[单片机]
STM32_EXTI外部中断学习笔记
参考资料:《STM32F4xx中文参考手册》系统配置控制器以及中断和事件章节。 EXTI( External interrupt /evet controller) 之前接触过51单片机的都了解到51单片机有两个外部中断 ,分别为外部中断0、1。用来实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。而STM32的则有与之功能相同的外部中断事件控制器。外部中断/事件控制器(EXTI)管理了控制器的 23个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的
[单片机]
STM32-一个例子搞懂EXTI外部中断/事件系统
假设一个商业帝国集团STM32 GROUPE有三家子公司,叫EXTI安保公司、AD转换技术有限公司、INT中断快递有限公司。 EXTI安保公司有一个经理和三个员工,分别为: 经理:寄存器·李 门卫:边沿检测·王 业务员:中断业务·杨 发言人:脉冲输出·赵 下图便是EXTI安保公司,黄色方框是集团董事长,绿色方框是经理,蓝色方框1~3分别是门卫、业务员、发言人。 边沿中断事件 一天,EXTI技术有限公司经理寄存器·李得到集团董事长的指示,要抓一个叫边沿的家伙,把它交给AD转换技术有限公司处理。(外部中断触发AD转换) 经理赶紧告诉门卫边沿检测·王:“小王啊,注意点,如果遇到一个叫边沿的时候告诉我一声!
[单片机]
使用STM32单片机点亮LED
有一人,登场于金庸先生的《神雕侠侣》,以大理段氏“一阳指”自成一派,武学修为登峰造极,“天下五绝”之一,号称“南帝”,他就是“一灯大师”。如今,武林中逐渐被遗忘的“一灯大师”,却活跃在另一个行业——嵌入式开发中。 传说,每一个成功的MCU(俗称单片机)开发组中,都有一名“一灯大师”,他精通所有开发板的点灯方法,对于企业引入的新开发板,总是勤学苦练,从点灯开始,快速掌握新开发板的编程要点,带领团队走向胜利。 成为“一灯大师”,离不开持续的修行,离不开对一招一式的勤学苦练。本文将讲解如何通过编程来控制STM32点亮一个LED。 学习环境: 1.软件:Keil5 2.硬件:STM32开发板(笔者使用信盈达公司的M4开发板,芯片型
[单片机]