-
众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。 其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。 内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上...[详细]
-
中断作为stm32中必不可少的一个功能,其重要性是不言而喻的因此把中断学习好是根本。 所以今天就来好好啃一下中断配置的知识,俗话说:磨刀不误砍柴工。问题是什么呢?项目中我用到了一个触摸键盘TTP229,结果在测试键盘时,不能够输入密码?最终,调试出bug就是由于中断优先级的影响。 本项目使用到的是STM32F030C8型号的MCU,我们可以从官方下载到的标准库文件中的启动汇编文件中...[详细]
-
一、基本定时器介绍在STM32中,基本定时器有TIM6、TIM7等。基本定时器主要包含时基单元,提供16位的计数,能计数0~65535。基本定时器除了计数功能以外,还能输出给DAC模块一个TRGO信号。基本定时器框图如下:二、时基单元介绍STM32的所有定时器都具备时基单元,时基单元的功能就是简单的计数,即计数时钟源TMxCLK的脉冲个数,这个时钟源来至APB1总线。高...[详细]
-
一、工作原理输入捕获是STM32单片机定时器的一项重要的功能,应用很广泛,常用于测量脉冲宽度,周期等。超声波模块测距的原理是:单片机给超声波模块(我用到的超声波模块型号是HC-SR04,下面简称HC-SR04)发送一个大于10us的高电平,触发HC-SR04发出8个40kHz的方波,并自动检测是否有信号返回,如果有信号返回,就会通过Echo对单片机输出一个高电平,高电平的持续时间就是超声波从...[详细]
-
一、基础概念什么是IAP?IAP即在应用中编程(In-ApplicationProgrammingIAP),简单的说就像是一个用户自定义的升级程序。实际上,STM32单片机的程序烧写有多种方法,可以用JTAG,也可用串口通过ISP软件烧写新程序。JTAG的方式需要专用的烧写工具,在产品布置到现场后,更新产品程序比较麻烦,而通过串口的ISP软件升级方法可以直接使用常见的串口线升级程序,十...[详细]
-
Keil5更新之后,开始支持ARMV6编译器,新版本的编译器对C++有了更多的支持,在编译方面也做了很多的改善,具体的没有详细了解,本文只是对STM32开发下,使用V6版本的编译器进行STM32的C++开发作一个记录,方便和大家交流和参考。至于说为什么STM32要C++开发,这个没有解释,只是个人觉得C++比C有更多的方便,使得编程更加的容易,C++有更多的生态.... 开始上教程:...[详细]
-
1.内容简介 在2015年,苹果新一代的MacBook和AppleWatch皆搭载压力触控感应技术,它被Apple称为ForceTouch,用户每次按下触控板之后除了可以在萤幕看见视觉回馈,它同时能够分辨出用户点按的力度强弱来做出一系列的相关操控与应用。而本文将介绍以HY16F184内建高精密Sigma-delta24BitADC搭配UneoForceSensor来实现一...[详细]
-
1、STM32启动规则STM32根据boot0和boot1的电平决定启动位置,boot0=0时从主Flash启动,即0x08000000地址启动。按照spec,M3核的中断向量表是不变的(中断向量表每一项为4个字节),中断向量表的顺序:栈顶、复位向量、中断向量.....。所以复位时0x00000000(映射在0x08000000)的值为栈顶指针,0x00000004(映射在0x0800000...[详细]
-
1、问题背景近前,使用STM32F4HAL库的SPI读取MPU6500出现异常。现象:读取ID失败,返回0,以为硬件焊接问题,各种排查,最后为了示波器测试方便,把读取ID的函数放到While(1)里,反复的读然后抓波形,奇迹出现了,第一次读取出现错误,后面的都返回了正常的ID号。既然问题已经清楚,能够反复重现,那么排查起来也就容易多了,为了找到这个问题,花费了1天的时间,搞得都毛了...[详细]
-
这个光立方是半年前就做好的,今天把当时制作的图片翻出来看看,觉得有必要总结下这个玩意儿的折腾过程。先上成品图一张:我是用原始的实验电路板搭建的,不需要绘制PCB,准备好电路图,元件就可以开始了。元件清单:2*5*7mm长脚雾面LED512个STC12C5A60S2单片机1片40脚芯片座1个24MHZ晶振1颗30pF电容2个10uF电容1个10K电阻1个10K...[详细]
-
首先我们看官方的正统安装方法,按道理说也是最安全便捷的安装方法,但是会失败,因为q。方法如下:使用【开发板管理器网址】自动安装步骤一:【文件】-【首选项】把https://dl.espressif.com/dl/package_esp32_index.json添加到【附加开发板管理器网址】步骤二:【工具】-【开发板】-【开发板管理器】搜索esp32,然后安装步骤...[详细]
-
摘要:为什么可以在STM32上面跑神经网络?简而言之就是使用STM32CubeMX中的X-Cube-AI扩展包将当前比较热门的AI框架进行C代码的转化,以支持在嵌入式设备上使用,目前使用X-Cube-AI需要在STM32CubeMX版本5.0以上,支持转化的模型有Keras、TFlite、ONNX、Lasagne、Caffe、ConvNetJS。Cube-AI把模型转化为一堆数组,而后将这些数组...[详细]
-
单片机用处这么广,尤其是STM32生态这么火!如何快速上手学习呢?你要考虑的是,要用STM32实现什么?为什么使用STM32而不是用8051?是因为51的频率太低,无法满足计算需求?是51的管脚太少,无法满足众多外设的IO?是51的功耗太大,电池挺不住?是51的内存太小而你要存储的东西太多?还是51的功能太弱,而你要使用SPI、I2C、ADC、DMA?当你需要使用STM32某些功能,而...[详细]
-
简介:电子负载作为电子工程师经常使用的一款仪器,测试电源,电池容量等会经常用到。先说下DIY的电子负载具体参数和技术细节吧:一、电子负载最大电压100V,电流20A,最大功率150W二、硬件支持恒流和恒压双闭环设计,负载支持恒压负载。恒流负载,恒阻负载,恒功率负载。三、可以拓展支持电池直流内阻测试,太阳能电池板功率曲线测试。四、主MCU采用STM32G0设计,32位MCU,64M主频...[详细]
-
一、前言MicroPython(官网:https://micropython.org),是Python3编程语言的一个完整软件实现,用C语言编写,被优化于运行在微控制器之上。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者...[详细]