草庐IT

STM32 IAP应用开发——通过内置DFU实现USB升级(方式1)

STM32IAP应用开发——通过内置DFU实现USB升级(方式1)目录STM32IAP应用开发——通过内置DFU实现USB升级(方式1)前言1硬件介绍2环境搭建2.1KeiluVsion2.2STM32CubeProgrammer2.3zadig2.4检查USB驱动3固件升级结束语前言什么是IAP?IAP(In-ApplicationProgramming)指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。在应用编程(IAP)是用户的应用代码对片内Flash存储器进行擦除/编程的方法。这种方式的典型应用就是用一小段代码来实现程序的下载,实际上单片机的ISP功能就是通过IAP

TIM-输出比较(PWM)——STM32

TIM-输出比较——STM32Oc(OutputCompare)输出比较输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道额外拥有死区生成和互补输出的功能第一步,RCC开启时钟,把我们要用的TIM外设和GPIO外设的时钟打开第二步,配置时基单元,包括这前面的时钟源选择第三步,配置输出比较单元,里面包括这个CCR的值、输出比较模式、极性选择、输出使能这些参数。第四步,配置GPIO,把PWM对应的GPIO口,初始化为复用推挽输出的配置。第五步,就是运行控

【stm32】01,今晚,整个32将为你闪烁(GPIO输出,点亮led灯)

往期内容:【stm32】00亲爱的勇者,在踏上这个波澜壮阔的大陆之前,厉兵秣马,我们即刻出发各位勇者你们好啊,我是weib。祝贺你们已经厉兵秣马做好在这个世界中闯出一番天地的准备了,也欢迎来到第一个关卡——GPIO的输出操作,闲言少叙让我们进入正题吧。0、准备请各位勇者再次确认自己的装备是否齐全——keil5-mdk及其芯片包、cubemx及其jdk环境以及一颗强大的心脏。加油吧各位勇者,我相信你们都是天选之人,定能在嵌入式这个世界闯出一片天地!最后请闭上眼睛,轻轻的抚摸你的键盘,她是你最忠实的伙伴,她将陪伴着你攻克道道难题。1、二极管及其单向导电性我们今天面对的boss叫做led(light

STM32 USB DP/DM内置的上下拉电阻阻值

根据USB协议,工作在主机模式,USBDP/DM下拉到GND,工作在设备模式,上拉到VCC(DP上拉表示高全速设备,DM上拉表示低速设备,STM32在Device模式只支持高速或全速):图片来源于《STM32F407数据手册》,红色为示意,实际在电路中不存在;仅主机模式:仅设备模式:OTG模式:OTG模式下,MCU根据VBUS检测脚与ID脚(内置上拉电阻)判断自己属于HOST或Device,如果ID=0,则为HOST,DP/DM需要下拉到地,如果ID=1且VBUS有电,则为Device模式,DP自动连接内部上拉电阻Rpu;以下图片来源于《STM32F4XX中文参考手册》 内置的DP/DM上下拉

stm32 使用keil无实物(软件)仿真,虚拟串口通讯

准备1.keil2.vspd虚拟串口3.sscom串口助手4.CubeMX//哪里报错no‘read‘permission,把哪里map一下map0x40000000,0x400077FFreadwrite   //APB1map0x40010000,0x40014BFFreadwrite   //APB2map0x40020000,0x4007FFFFreadwrite   //AHB1map0x50000000,0x50060FFFreadwrite   //AHB2map0x60000000,0xA0000FFFreadwrite   //AHB3map0xE0000000,0xFFFF

【STM32训练—WiFi模块】第二篇、STM32驱动ESP8266WiFi模块获取天气

目录第一部分、前言1、获取心知天气API接口2、硬件准备第二部分、电脑串口助手调试WIFI模块获取天气1、ESP8266获取天气的流程2、具体步骤第三部分、STM32驱动ESP8266模块获取天气数据1、天气数据的解析1.1、什么函数来解析天气数据?2.1、解析后的数据如何使用? 2、相关代码2.1、main.c文件2.2、esp8266.c文件第四部分、总结1、效果展示2、完整的工程3、补充第一部分、前言    这篇博客拖了很久很久,本来是打算和前面一篇一起发出来的,但是那段时间因为一些事情耽搁了,这篇博客写了一半,剩下的一直都没有写,其次就是人也有点懒,也不太想动🤪🤪。    这几天考试周

【STM32篇】LCD显示汉字(从W25Q64中读取GBK字库)

    汉字显示在很多单片机产品中都需要用到,显示个别汉字可使用MCU的flash保存汉字字模,而显示更多的汉字就可能要在产品中保存一整个字库作为汉字储备。对于STM32F103VET6单片机FLASH只有512K字节,要存下一个字库就有点乏力且浪费单片机资源。在上一章节中完成了W25Q64驱动,本篇将介绍将GBK字库写入W25Q64中,并读取至LCD屏上显示。LCD和W25Q64驱动请参考以下文章:【STM32篇】驱动LCD显示屏【STM32篇】SPI时序驱动W25Q64(硬件SPI和模拟SPI)1.汉字字库        常用的汉字内码系统有GB2312、GB13000、UNICODE、G

【STM32】STM32F4 GPIO口映射与复用

前言STM32F4有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。这部分知识在《STM32F4中文参考手册》第七章和芯片数据手册有详细的讲解哪些GPIO管脚是可以复用为哪些内置外设。STM32F4系列微控制器IO引脚通过一个复用器连接到内置外设或模块。该复用器一次只允许一个外设的复用功能(AF)连接到对应的IO口。这样可以确保共用同一个IO引脚的外设之间不会发生冲突。每个IO引脚都有一个复用器,该复用器采用16路复用功能输入(AF0到AF15),可通过GPIOx_AFRL(针

RT-Thread使用PWM实现灯亮度调节——STM32F407

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档RT-Thread使用PWM实现灯亮度调节——STM32F407ZG前言作为新入门的嵌入式选手,最近在学习RT-Thread操作系统,鉴于自己健忘的记性,打算记录下来后面好回顾学习。今天要总结的是RT-Thread使用PWM实现灯亮度调节,参考了很多大神的博文,站在大神的高度进行内容重复和汇总,算是督促自己学习进步的手段之一吧,如有错误请大家及时指出,感谢!提示:以下是本篇文章正文内容,如有错误请评论指出哈一、PWM介绍PWM(PulseWidthModulation,脉冲宽度调制)是一种对模拟信号电平进行数字编码的方法,通过不同

stm32利用bootloader与app实现远程升级

1、flash空间分配:事先在flash开辟好空间,假设flash为128k,我这边给它分为五个区,分别为bootloader、标志位、application、applicationbackup、标签ID。(注:升级之前,app的代码烧录于application的flash存储区域内。用于app升级的bin文件大小一定要小于自己开辟的flash空间大小)2、升级流程(以标签板为例):上位机发送一个升级指令,bootloader先判断是否收到升级指令,若收到升级指令,则进入升级状态。此时,将applicationbackup的flash数据擦除,applicationbackup区域开始接收ap