stm32

到底什么是嵌入式?什么是单片机?

懵懂的女人 提交于 2020-02-27 15:20:23
凡是从事计算机或电子信息相关领域工作的童鞋,一定都听说过 嵌入式 和 单片机 吧? 很多人应该知道,这两个名词和硬件系统有着非常密切的关系。一听到它们,就容易让人联想到插满芯片和针脚的电路板: 但是,如果要问具体什么是嵌入式,什么是单片机,它们之间究竟有什么区别,我相信大部分人并不能解释清楚。 今天,小枣君就给大家做一个入门科普,揭秘上述问题的答案。与此同时,我还会给大家介绍一下,我们经常听说的51、STM32,究竟是什么。 什么是嵌入式 首先,我们来看看什么是嵌入式。 嵌入式,一般是指嵌入式系统,英文叫作:embedded system。嵌入式开发,其实就是对嵌入式系统的开发。 IEEE(美国电气和电子工程师协会)对嵌入式系统的定义是:“用于控制、监视或者辅助操作机器和设备的装置”。 国内学术界的定义更为具体一些,也更容易理解: 嵌入式系统,是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 以应用为中心,说明嵌入式系统是有明确实际用途的。以计算机技术为基础,说明它其实就是一种特殊的计算机。软硬件可裁剪,说明它有很强的灵活性和可定制能力。 专用计算机系统,“专用”所对应的,就是“通用”。我们常用的个人PC、笔记本电脑、数据中心服务器,可以用于多种用途,就是“通用计算机系统”。 嵌入式系统究竟具体应用于哪些“专用

STM32同步定时器并触发ADC_DMA多路采样

爱⌒轻易说出口 提交于 2020-02-26 14:54:30
STM32同步定时器并触发ADC_DMA多路采样 ctime:2019-05-05 16:53:06 +0800|1557046386 标签(空格分隔): 技术 硬件 需求是这样的: 做电机驱动,需要采集电压和电流的时候,由于H桥驱动管以16K的频率再开关,如果随意进行ADC采样的话,会采到MOS关断时候的电压值和电流值,对整个电压和电流的估计造成影响。最好的情况就是在PWM为高电平,也就是MOS导通的时候,采集相应的电压和电流。 那么实现方式就是用定时器来触发ADC进行采样,而这个定时器又必须与发出PWM波的定时器计数是同步的,假设驱动电机的定时器为TIM2,那么用TIM4作为从定时器,TIM4另外发出一路PWM波来触发ADC采样。 假设此时驱动电机的占空比为50%,那么TIM4发出的PWM波占空比应该是25%(在高电平的中间采样),同时由于ADC是上升沿触发,因此需要将TIM4的PWM波极性反一下,直接设置为PWM_MODE_2即可。 思路就是这样,接下来开始配置: ADC配置: void MX_ADC1_Init(void) { ADC_ChannelConfTypeDef sConfig; /**Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of

STM32简易示波器开发总结

試著忘記壹切 提交于 2020-02-26 12:38:28
考研失利不用准备复试了,有了空闲时间做了个示波器,带宽80Khz,输入幅度0-3.3V,带有触发功能,接近实时的波形显示和FFT计算,不过存储深度太小了只有1024个点。最近要准备工作的面试了之后有时间再完善。简单总结一下设计思路,一些疑问和今后要完善的地方,采用的基本上都是固件库开发怎么配置网上都有就不细说了。 (ps:大四辣鸡一个,半瓶水晃荡着做的,有很多知识和理解受制于自己的视野,也还有许多地方设计的不合理欢迎大家交流,家里没有杜邦线剪了一截导线大家将就看8(狗头)) 一.STM32内部DA作为信号源 二.STM23内部AD不间断采样 总线72MHz,6分频,55.5个周期的采样时间,大概有160KHz的采样频率(不知道现在数字示波器还是不是和模拟的一样用扫描信号,没有仔细去找相关资料,但是感觉完全可以用足够的采样率和存储深度恢复波形) 三.DMA总线传输(单次、不循环) 总共传输1024个数据,可以设置更多点,不过本次用的是32内部的SRAM,如果想做更多点的使用外挂RAM不知道速度够不够 四.处理数据 1.触发:设置了俩种,(1)达到触发电平触发、(2)达到触发电平且为上升沿触发。T_point为触发位置,ADC_ConvertedValue为DMA传输的数据,T_value触发电平。 电平触发 int Trigger ( ) { for ( T_point = 0 ;

STM32 USB VCP (Virtual Com Port)

北战南征 提交于 2020-02-25 04:18:23
问题 I generated a code for "stm32f103c8t6" with CubeMX for USB VCP, when I add "CDC_Transmit_FS" command to send data, the port isn't recognized by windows10! what should I do? Here is the code which is compiled without error: #include "stm32f1xx_hal.h" #include "usb_device.h" #include "usbd_cdc_if.h" int main(void) { uint8_t Text[] = "Hello\r\n"; while (1) { CDC_Transmit_FS(Text,6); /*when commented the port is recognized*/ HAL_Delay(1000); } } 回答1: Put delay before CDC_Transmit_FS call - it

[STM32爬坑] 自制STLink V2.1

心不动则不痛 提交于 2020-02-24 21:10:05
自制ST link V2.1 为什么要制作ST link V2.1 其实很早的时候就说过,要自制STlink V2.1。 为什么要自制这个东西呢,原因其实很简单,接触ST芯片也已经三年了,从入门的Jlink调试,到后来的板载调试器,直到 ST link V2.1的出现,真正让我改变了对调试器的看法。 还是要从头开始说,为什么要使用ST link V2.1 自带串口!!!! 没错,我使用他的原因就是他自带串口,直接通过虚拟串口和PC通信,少了一个USB的占用,少了一片CH340芯片 正题 如何自制STlink V2.1 电路图 这是我实物测试过的STlink V2.1 的最小系统 其中CPU 可以选用 STM32F103 CBT6 (直接烧写官方固件,CUBEIDE直接更新固件) STM32F103 C8T6 (需要破解固件,CUBEIDE需要修改文件) 以上两款CPU的主要差距在于Flash的容量不同,C8是与CB是同一款芯片,但是由于片内FLASH质量问题,C8是屏蔽了一部分存在质量缺陷的FLASH后的产品,可以通过软件强制写入,但是对于其中保存的数据的可靠性不做保证,可能成功。(我下载十次成功过两次,但是仿真一周后固件掉了) 可以参考的仿真器布局 仿真器布局一 仿真器布局二 固件下载 烧录官方STlink V2 固件即可,然后使用工具升级STlink 2.1的固件

【STM32学习问题记录】ST-LINK下载器下载后需复位,程序才跑起来的问题

天大地大妈咪最大 提交于 2020-02-24 05:47:35
编辑器:Keil MDK 下载器:ST-LINK 详细问题 Keil上将写好的代码编译通过后(0 Errors,0 Warings),点击快捷工具栏中Download快捷键,通过ST-LINK下载器下载至STM32单片机中,本来是想LED能够Blink的,发现开发板上面什么反应都没有。 (这种问题对于大佬小菜一碟,而对于我这种菜鸡小白来说,就能让我困惑一阵子了 ^ _ ^) 可能原因 原因一:程序问题。(PS:我把程序检查了很多遍,并没有问题。) 原因二:没有复位。(PS:也是误打误撞,我随便按了板子上复位按键,发现程序跑起来了) 原因三:持续更新中… 解决方法 方法一:手动复位 待程序成功下载至板子后,手动按下板子上的复位按键,之后观察程序是否可以跑起来。 方法二:软件设置自动复位(推荐) 如果板子上没有手动复位按键,可以设置软件自动复位,当然这种方法也是我个人比较推荐的一种方法。具体操作见下图: 仿真器配置里面把第三个√给√上,之后就一直点右下方的OK就行了。 这回再把程序下载进去,就可以跑起来了。 总结 STM32系列单片机在使用仿真器下载时,需复位后程序才能跑起来,这个或许是STM32的特性吧,51单片机好像没有见过。 码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦! 来源: CSDN 作者: AXYZdong 链接: https://blog.csdn

DSP与STM32大PK

大憨熊 提交于 2020-02-22 22:58:02
1.FPGA:是可编程逻辑阵列,常用于处理高速数字信号,不过随着科技的发展,现在很多FPGA CPLD可以集成mcu内核,甚至具备了ARM DSP的功能 2.ARM,是一类内核的称谓,就像51一样,具体到芯片的话,会有很多不同的厂家不同等级,诸如三星、易法、飞利浦、摩托罗拉等等,其中STM32是易法半导体的一款面向工控低功耗内核为Cortex M3内核的ARM芯片 3.DSP顾名思义就是数字信号处理,厂家主要是德州仪器(TI)主要用于数字型号处理等对运算速度有特殊要求的场合,诸如音频视频算法,军工等领域,但同时dsp有2000 5000 6000等系列也可满足不场合需要 1.FPGA一般不会用来做复杂的系统,只用来做些简单的系统如状态机实现的自动售货机...展开>等,多少还是用来做信号的高速变换和处理,毕竟它只是可编程逻辑阵列。 2.ARM和DSP就各有千秋了; ARM的系列从V3 V5 V7 V9 XSCALE,从thumb指令到arm指令(thumb arm也可同时实现),可以说遍布机会所有的领域,只要你接的价格可以接受(其实许多arm并不是很贵的),单片机所有的功能基本他都能实现,我就不用举例子,特别是现在与各种RTOS结合更是开发方便功能强大。 DSP相对arm价格要贵些,这也是可能个体厂家使用较少的一个原因吧,2000系列主要用于工控特别是2812这个用的人比较多

DSP与STM32大PK

徘徊边缘 提交于 2020-02-22 22:57:07
1.FPGA:是可编程逻辑阵列,常用于处理高速数字信号,不过随着科技的发展,现在很多FPGA CPLD可以集成mcu内核,甚至具备了ARM DSP的功能 2.ARM,是一类内核的称谓,就像51一样,具体到芯片的话,会有很多不同的厂家不同等级,诸如三星、易法、飞利浦、摩托罗拉等等,其中STM32是易法半导体的一款面向工控低功耗内核为Cortex M3内核的ARM芯片 3.DSP顾名思义就是数字信号处理,厂家主要是德州仪器(TI)主要用于数字型号处理等对运算速度有特殊要求的场合,诸如音频视频算法,军工等领域,但同时dsp有2000 5000 6000等系列也可满足不场合需要 1.FPGA一般不会用来做复杂的系统,只用来做些简单的系统如状态机实现的自动售货机...展开>等,多少还是用来做信号的高速变换和处理,毕竟它只是可编程逻辑阵列。 2.ARM和DSP就各有千秋了; ARM的系列从V3 V5 V7 V9 XSCALE,从thumb指令到arm指令(thumb arm也可同时实现),可以说遍布机会所有的领域,只要你接的价格可以接受(其实许多arm并不是很贵的),单片机所有的功能基本他都能实现,我就不用举例子,特别是现在与各种RTOS结合更是开发方便功能强大。 DSP相对arm价格要贵些,这也是可能个体厂家使用较少的一个原因吧,2000系列主要用于工控特别是2812这个用的人比较多

STM32芯片型号的命名规则

丶灬走出姿态 提交于 2020-02-22 21:21:17
  意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、增强型系列;新系列产品沿用增强型系列的72MHz处理频率。内存包括64KB到256KB闪存和20KB到64KB嵌入式SRAM。新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合STM32平台的设计理念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。 基本型:STM32F101R6、STM32F101C8、STM32F101R8、STM32F101V8、STM32F101RB、STM32F101VB 增强型:STM32F103C8、STM32F103R8、STM32F103V8、STM32F103RB、STM32F103VB、STM32F103VE、STM32F103ZE STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下: 来源: https://www.cnblogs.com/xi-jie/p/12347119.html

基于 QEMU进行 STM32 仿真开发

给你一囗甜甜゛ 提交于 2020-02-22 15:51:57
背景 老师送给我的STM32的板子不小心给我坏了,现在疫情还没过去,为了复习巩固stm32有关的移植,只能先玩玩仿真了。 我们在这一讲主要以搭建环境为主。 host平台   :Ubuntu 16.04 QEMU 介绍 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。 正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成虚拟化工作,因为 KVM 是硬件辅助的虚拟化技术,主要负责 比较繁琐的 CPU 和内存虚拟化,而 Qemu 则负责 I/O 虚拟化,两者合作各自发挥自身的优势,相得益彰。 QEMU 同时也是一个非常简单的虚拟机,给它一个硬盘镜像就可以启动一个虚拟机,如果想定制这个虚拟机的配置,比如用什么样的 CPU 啊、什么样的显卡啊、什么样的网络配置啊,指定相应的命令行参数就可以了。它支持许多格式的磁盘镜像,包括 VirtualBox 创建的磁盘镜像文件。它同时也提供一个创建和管理磁盘镜像的工具 qemu-img。QEMU 及其工具所使用的命令行参数,直接查看其文档即可。 QEMU 安装