stm32嵌入式开发
文章平均质量分 65
本专栏主要管理stm32单片机中开发遇到的问题
无为扫地僧
这个作者很懒,什么都没留下…
展开
-
STM32固件升级之 Ymodem 协议(二)
在了解了上一章的知识之后,我们该以哪种协议传输bin文件呢?这里介绍YModem协议,当然可以使用其他的协议传输比如XModem,Modbus 等等。YModem协议是从XModem协议演变而来的,每包数据最多可以达到1024字节,是一个非常高效的文件传输协议。下面是传输过程: 首先接收方发送字符‘C’,等待发送方接收,如果接收方没有准备好,则接收方持续发送‘C’。接收方收到 C 后,开始发送第一帧数据:字符:字符为 ASCII 码,指定的几个特定字符。比如 SOH...转载 2020-11-18 10:28:49 · 1127 阅读 · 0 评论 -
STM32固件升级之基础知识(一)
这里以KEIL开发环境和STM32F407为例。上电时单片机首先进入复位中断 Reset_Handler,即汇编文件的复位中断处理函数。并且有一个中断向量表默认存在于flash地址开始处。为什么说是默认的呢?这是因为如果没有特殊要求我们一般很少回去修改中断向量表。实际上这个中断向量表是可以更改的。如果我们更改了中断向量表,在执行新的程序时,必须在地址开始处建立一个新的中断向量表,因为复位后,程序默认(硬件决定的)从flash开始的第一个字读取栈指针,第二字就是复位中断的入口,并根据该指针转载 2020-11-18 10:06:47 · 1818 阅读 · 0 评论 -
stm32f407 IAP带ucosii升级问题
最近用STM32F407做了一个产品,为了方便以后升级固件和修复bug,所以需要考虑实现iap功能。由于产品对外只有USB和UART两个接口,考虑到多用户的通用性,所以选择了UART作为升级入口。这里不详细描述实现过程,只分享一下自己移植过程遇到的一些问题和自己的一些实现思路供大家参考。因为我们的产品上只有一个USB接口和一个4Pin的串口,没有设计按键,所以这里我换了一个方式来实现切换,就是利用BKP备份寄存器来实现,实现思路是在在APP中,设计一条升级指令,用户通过USB向MCU发送升级指令后,AP原创 2020-11-10 11:04:25 · 1100 阅读 · 1 评论 -
STM32固件升级之 hypertrm(超级终端)使用(三)
以下操作方法是为公司的一个项目写的操作流程。1)安装 hypertrm软件2)使用串口连接电脑和目标板3)打开 hrpertrm软件,在“连接描述”对话框中,输入名称和选择图标,点击确定即可,如下图所示。4) 点击“确定“按钮之后,弹出“连接到”的信息窗口,在“连接时使用”选择串口的功能,再点击"确定"即可,如下图所示。5)点击“确定“按钮之后,弹出串口属性配置对话框,属性配置的如下图所示。6)最后点击"应用",在点击“确定”就配置好了串口功能。...原创 2020-11-18 10:49:58 · 4041 阅读 · 0 评论 -
开发环境搭建-Linux下如何搭建stm32开发环境
使用stm32cubemx+sw4stm32 1.准备工作下载stm32cubemx:http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html下载sw4stm32:http://www.open..转载 2020-09-09 15:09:12 · 1045 阅读 · 0 评论 -
stm32固件升级之U盘(四)
序言 做什么,什么做升级原理升级过程中遇到的wenti原创 2022-05-25 16:23:50 · 4069 阅读 · 0 评论 -
STM32F4定时器TIM1输出六路带死区互补PWM波形(一)
看到网上有关高级定时器可以输出多达六路的PWM输出。下面如何讲解如何实现输出6路带死区互补的PWM波形。首先查看ST官方RM0090参考手册,高级定时器框图如下:硬件说明 TIM1_CH1-->PE9 TIM1_CH1N-->PE8 TIM1_CH2-->PE11 TIM1_CH2N-->PE10 TIM1_CH3-->PE13 TIM1_CH3N-->PE12 代码讲解引脚配置#define CH1_PIN ...原创 2021-03-29 11:50:24 · 4089 阅读 · 0 评论 -
stm32高级定时器输出PWM问题
高级定时器没有输出PWM有以下几个方面:如果采用更新中断翻转电平输出PWM,那么需要检查是否进入更新中断、中断配置是否配置正确和外设时钟是否正常打开; 如果使用PWM模式,一般出现在IO复用功能和重映射上。如果没有使用IO的复用功能,那么它是不可能被定时器外设所驱动的。而如果你的IO不是该定时器默认的输出IO,那么就需要进行重映射。F1和F4的重映射机制如下:STM32F1RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); // 开启转载 2021-03-29 10:30:04 · 12796 阅读 · 10 评论 -
STM32F4高级定时器死区控制(二)
死区时间概念从BLDC控制换相电路可得出:当两路互补PWM输出时,为了使桥式换相电路上管T1和下管T2、上管T3和下管T4、上管T5和下管T6不会因为开关速度问题发生同时导通而设置的一个包含时段。假设STM32高级定时器OCx和OCxN输出互补通道PWM,极性都是高电平有效,则下图标注"延时"那段时间就是死区时间,此时间段上管和下管都没有导通。STM32高级定时器死区时间计算配置断路和死区寄存器(TIMx_BDTR)死区时间计算示例假设STM32F407的高级定时器1的时钟原创 2021-03-29 14:57:07 · 2825 阅读 · 0 评论