platformio开发stm32无法使用dsp库

platformio开发stm32无法使用dsp库,第1张

服务器出现问题。platformio是一个物联网开发生态系统,开发stm32无法使用dsp库的原因是服务器出现问题,待服务器维修成功后即可正常使用。由于该系统安全系数高,深受使用人员的信赖。

stm32cubeide固件库更新服务器地址端口是:在stm32cubeide中,用户可以通过更新固件库来获取最新的芯片支持和功能增强。在更新固件库时,需要连接到固件库更新服务器,该服务器地址和端口可以在stm32cubeide的设置中进行配置。用户可以根据自己的网络环境和需求,选择合适的服务器地址和端口,以便快速、稳定地更新固件库。

STM32的RTC晶振经常出现不起振的问题,这已经是“业界共识”了。很多人在各种电子论坛上求助类似于“求高手指点!RTC晶振不起振怎么办”的问题,而其答案基本可以概括为“这次高手帮不了你了”
更有阴谋论者提出让人啼笑皆非的解释——STM32的RTC晶振不起振是ST与晶振厂商串通后故意搞出来的,目的是提高某晶振厂商高端晶振的销量。
最近做的几块板子也用到了STM32的RTC,前后两版一共做了大概6片,幸运的是并未遇到晶振不起振的现象。而我采用的是3毛钱一个的普通晶振,并未选用传说中低负载高精度晶振。后来在另外一片实验性质的板子上首次遇到了晶振不起振的问题,而且做了2片都不起振,这才让我意识到这个问题的严重性。
从上述现象来看,我认为对RTC晶振起振影响最大的因素应该是PCB的布线。但是遇到问题时通常是PCB已做好,甚至已经做了几百块,没有回头路了。于是大家更关注的问题似乎就是“如何补救”了。在网上搜索一下,你就会发现世界是如此美好!每个人的经验和建议都不一样,甚至是完全相反的!这种现象告诉我们,除了PCB布线,对晶振起振影响最大的似乎不是电气参数,而是另外一种不可忽略的因素——人品!
各种相互矛盾的经验也告诉我们,导致晶振不起振的原因是多种多样的,也是因“人”而异的。也许,我们无法找到一个绝对有效的经验一举解决STM32的RTC晶振这个让人头疼的问题,但我们可以从各种经验中找到一些线索,为最终摸索到适合自己这块板子的解决方案提供一些帮助和提示。
如果晶振不起振,尤其是你已经使用了传说中的爱普生6pF晶振后还是不行,也许你应该尝试对以下几个方面排列组合,找到适合你这块板子的,更容易起振的方式。
下面就罗列一下可能影响RTC晶振起振的因素
1 晶振的品牌和负载电容
大家貌似都知道要用6pF的晶振,但我发现其实125pF的也可以用。大家都说KDS日本原装的好,我那个3毛钱的国产晶振貌似也没啥大问题。。。
2 晶振外接的匹配电容
有人说6pF的晶振要配6pF的电容。但有经验公式指出这个电容的值应该是晶振本身负载电容的两倍,6pF的晶振应该配10pF的匹配电容,当然125pF的就应该配20pF或者22pF的电容了~电容值不匹配可能造成晶振不起振。更神奇的是,有人指出去掉外接的匹配电容会使晶振起振!这似乎没啥道理,但在我的板子上,有且仅有这个方案是可行的!!!
3 晶振并联的反馈电阻
晶振可以并联一个高阻值的电阻,据说这样更容易起振。。。这个电阻的阻值有人说是1MΩ,有人说是5MΩ,也有人说是10MΩ,,,当然也有人说不能并联这个电阻,并联了反而不起振
4 XTALout到晶振间串联电阻
这种做法是官方的应用笔记指出的,而且给出了这个电阻的计算公式。对这个电阻的的必要性也是众说纷纭,同样存在两种矛盾的说法,即必须要有这电阻,否则不起振。还有一说不能有这个电阻,否则不起振。。。从官方的应用笔记来看,这个电阻的主要作用是保护晶振,以防晶振发热。由此看来这个这个电阻似乎并非影响晶振起振的主要因素,甚至可能让晶振更难起振。
5 晶振的外壳是否接地
这个就不用说了吧。晶振的外壳是金属的,做封装时可以把那个焊盘做成机械焊盘而悬空,也可以做成电气焊盘,然后连接到GND。对这个说法同样存在争议,有人说外壳必须接地,也有人说接地后反而不起振。
6 提高Vbat引脚的电源质量
这种说法是有一定道理的,因为RTC部分是由Vbat的来供电的。有人说Vbat引脚对电源质量要求比较高,如果纹波较大可能会影响晶振的起振。网上还有其他人验证过,直接上图(原贴链接:>使用rt thread系统里的EC200驱动包+web client做一个物联网项目,之前开发的时候一直都是用的EC600S模块,看起来挺好的,没什么大问题,后来量产的时候不小心买了EC600N焊上去了,之前也听厂家的技术支持说应该是完全一样的,可是就掉进了这个坑里。
故障现象:
模块的net_status和net_mode灯的状态不太对,模块开机后的最终状态有时候net_mode常亮,net_status灭掉,或者net_status一直在慢闪,net_mode一直熄灭。甚至有时候我的应用可以先从服务器拿一包数据,然后又挂掉再也连不上了。
分析:
上述这两种状态都不在文档描述中,打at client去看,你发什么它都是直接回显,比如发AT+CPIN它就直接回,而不是回OK或者错误,所以初步判断是模块进入了一个错误的状态。那么能让模块进入错误状态无非就是以下几种情况:
睡眠或者开机、重启的姿势不对
或者在模块初始化之前我的应用代码把它搞死了。但是之前用EC600S开发都是好的,而且一般应用代码不太能把模块搞到错误状态,这种可能性比较低。
排查:
针对第二种情况,排查很简单,先把应用软件去掉看看。故障依旧,所以继续排查1
在EC200的驱动包里要配置开机引脚,状态引脚,睡眠引脚。无论是开发什么东西,一般睡眠这种状态是最容易出问题的,包括x86开发,usb设备开发,屡见不鲜,所以首先把睡眠去掉了(-1),但是故障依旧。
刚开始我始终没有怀疑状态引脚,因为它是个输入,只是判断一下模块有没有开机,感觉不会有什么问题,所以绕来绕去一直没有去动它。直到看到了有个哥们遇到了类似的问题:
RT-Thread-at_device 没有使用power pin 导致的网络异常 bugRT-Thread问答社区 - RT-Thread
这个问题其实我之前用EC600S的时候好像也遇到了,但是我并不用ping,应用也没有问题,所以也没去管他。不过这倒提醒了可以去试试,于是把开机状态也改成-1,居然就好了。
 
电源引脚我没去动它,模块是需要有一个开机时序的,我看它的初始化代码里也有去动电源引脚重新开机之类的。
希望其他掉在坑里的小伙伴可以看到我这篇帖子,少走点弯路。
打开CSDN,阅读体验更佳
Quectel_EC600S系列_TCP(IP)_应用指导_V12rar
EC600S-CN 模块内置 TCP/IP 协议栈, Host 可以 直接通过 AT 命令访问网络; 这大大降低模块对 PPP 和外部 TCP/IP 协议栈的依赖性,从而降低终端设计 的成本。
EC600N(二)--核心板初次点亮
系列文章目录 EC600N(一)–基本信息介绍 EC600N(二)–核心板初次点亮 目录系列文章目录前言一、使用前说明1供电方式2 模块开机状态二、AT指令测试1测试准备2AT指令测试 前言 本次实验使用移远EC600N双排核心板,主要使用AT指令测试模块,测试模块的USB口和33V串口。 一、使用前说明 1供电方式 EC600N模块需要用排针的VIN进行供电,供电如下图所示: USB口供电可能达不到模块的开机要求(由于串联了二极管,有压降),一般采用针脚对模块供电。这个设计有点鸡肋。 2
继续访问

移远4G模组EC600N进行TCP/IP连接和服务器测试
最近公司产品需要增加一个4G模块进行数据传输,想到之前做的移远的4G模块,于是买了一个核心板回来调试。 协议选择TCP/IP,因此使用的是TCP/IP部分的AT指令手册。工具方面,使用串口调试助手,关于测试服务器,一开始用的安信可的透传云,但是服务器连接一段时间不发送消息就会自动断开,所以还是使用了网络调试助手。因为网络调试助手使用的是本地网络,如果需要和4G通信,还需要使用花生壳做内网穿透。 接下来先把服务器部分做好。 如果没有花生壳软件,建议先去官网下载一个 长这样色的。安装后打开界面如下 这个界
继续访问

STM32F405+4G模块OTA固件升级调试记录
STM32F405+4G模块OTA固件升级调试个人记录
继续访问

Cat1模块使用总结(EC600N)
由于Cat4模块(EC20)功耗大,考虑到NB网络覆盖问题(设备在野外工作场景),因此项目上用选择了Cat1(EC600N)模块,现在把调试过程总结下,希望能够帮助到大家。EC20使用总结请看:单片机和4G模块通信总结(EC20)。 一、电源 手册说供电电压≥34V,峰值电流3A。 二、通信口 UART和IO口都是18V,需要做电平准换。 三、开机顺序 我是上电1s后复位,复位低电平600ms,然后100ms后开机,开机等待10s后进行 *** 作。 四、AT指令 采用消息地体原理,具体请看
继续访问

日志组件
日志组件 1 日志是什么 日志是软件应用必备的组件,是程序debug,或是数据收集管理的重要依据,方便我们监测生产环境的变量值变化以及代码运行轨迹。本课程主要用来学习实际开发中常用的日志组件。 主要是为了方便我们监测生产环境的变量值变化以及代码运行轨迹等。 这些记录会被输出到我们指定的位置形成文件,帮助我们分析错误以及用户请求轨迹。 2 常用日志组件 21 Log4j与log4j2x ​ Log4j有8种不同的log级别,按照等级从低到高依次为:ALL>TRACE>DEBUG&gt
继续访问
ESP32+移远EC600N模组通过MQTT连接阿里云并通过>首先51是最古老的芯片(指8051),专利过期了其他厂家兼容芯片琳琅满目。在你列出的这几种里面速度慢,内存小(排除有些厂家出的魔改的型号)。常见的厂家stc的,atmel的正统89c51系列以及后期魔改型号。国产的st89,10,11,12,以及最新的15。还有c8051系列,以及高速usb接口的芯片,以及有很多无线收发芯片的核心是8051的。但是指令集兼容但是寄存器的复杂度就不一样了。\x0d\\x0d\说arduino的话,arduino算是一个平台,他的早起,也是最广泛的核心是基于avr单片机的。我们都戏说arduino团队是给avr收买了帮avr买芯片。既然你没问avr的我就只说说arduino的情况。他简单易懂,做毕业,原型,快速开发的时候,硬件搭设方便,基本不用你去画板子,导线连接模块就是了。代码也全是简单易懂的。基本不涉及到寄存器级。总得来说就是开发快。小量定制化还是划算。真的做产品或者研究就算了,成本高,简单高度抽象化带来就是效率底下以及资源开销大,模块数量上去后系统就撑不住了。\x0d\虽然现在也有基于stm32,fpga,lpc,pic等芯片做的arduino,但是开源库和ide的开发很多没跟上,不兼容也没办法继承avr的arduino遗产。虽然官方也出了avr32位单片机的arduino,以及arm m0,还有配合嵌入式openwrt系统的arduino yun。但是价格以及方便性简直了(更何况新的芯片大多是低压io,外接模块很少兼容。\x0d\说stm32之前要说arm,上面的人也说过了,arm有分好几个版本。只说最近的划分,一个就是带mmu内存管理的,一般需要外接ram,flash才能工作。就是你听到的手机处理器arm多少多少,还有的路由器的处理器,以及服务器的处理器。特点是跑系统。还有就是不带mmu的嵌入式,和8051一样带ram,flash。现在划分了m0 m3 m4 m7等用在嵌入式,以及m0+升级版和其他特殊版本。总之就是比8051高了不知道哪里去了的芯片。然后stm32是st意法半导体公司向arm公司购买了核心(嵌入式)版权,加上自己的外设生产的一个系列的芯片。功能强大速度快外设多。但是寄存器复杂度等和8051就不能比了。所以官方也出了库,现在还出了专门的代码生成软件cube来简化 *** 作。\x0d\\x0d\fpga就厉害多了,前面说的几种都是单片机,做运算都是一步步来的,逻辑上是串联的。fpga是并行的,单片机一次同一时间只能做一次运算,fpga只要资源够(芯片买的贵),你心情好,同时进行成百上千的运算都可以的。所以一般用在速度要求高的地方,比如视频压缩,高速网络设备等。8051,arduino,stm32,10元左右就能上,fpga不上百就没啥资源可用,连前面三都比不过。fpga也不是用c来开发的,你可以想象成是一个数学的算法然后转到电路去执行(视频压缩就是一种)。更考数学,算法类的。\x0d\\x0d\总结1,8051系列已经是辉煌的末日了。构架上已经拉后腿了,除了老代码,老系统升级,就是特定领域的芯片上使用。但是他至今还占用很大份额的原因是——大学的课本是他。\x0d\总结2,arduino就是一个玩具,玩玩可以,艺术类学生用来做互动的比较多。很多是不懂嵌入式硬件的程序员用来做东西玩。真正懂的要么直接用底层的avr要么用stm32或者其他了\x0d\总结3stm32杠杠的,值得学。在同性质的单片机里面最具性价比的。学习资料也多。\x0d\总结4 没的说太大范围了,都攘括了上一条总结的东西。\x0d\总结5高大上。学好饭碗不愁,高薪。但是怎么也得博士硕士才能干出点成绩,野路子的话是享受不到这个的。同时资料也少,入门成本高。

java作为一门编程语言,肯定是用来编写软件的。它是从c演变而来的,是一门很优秀的编程语言,由于其虚拟机的应用,使得他可以一次编译处处使用,所以很是流行。

另外java又根据实际应用大体分为三个版本j2me面向嵌入式开发比如手机程序,j2se标准版中小型软件应该是多用于c/s结构,也是学习java的最好开始;j2ee面向大型企业系统,综合了很多技术。

Java将原程序编译成字节码(bytecode),并通过Java虚拟机(JVM)解释字节码的方式来执行。因为这种运行方式,只要针对不同的计算机平台准备相应的Java虚拟机,就可以很方便的实现Java语言的跨平台性。因此,Java非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。

Java的主要应用有如下几点:

利用浏览器中的Java虚拟机运行于客户端的Applet。

利用本地虚拟机运行的Java应用程序,通常利用Swing或SWT等来编写跨平台的GUI界面系统。

通过编写Servlet/JSP来提供网络服务,运行于网络应用程序服务器中。

利用嵌入式Java虚拟机运行于手机等移动设备的Java应用程序,使用J2MEAPI。

编写基于互联网的应用程序,编写移动应用程序。

手机的Java程序就用它编写。

Android就是以Java为基础,写Android应用程序也要有Java基础。

不知道你所说的PC机编程是否是Windows应用软件编程,如果是这个意思的话,STM32基本不需要PC机编程,但是很多应用是和PC机相关的,比如可能会用232和PC机的上位程序通信,也可能会用GPRS或以太网连接PC机的主站服务器等,这些PC上位机程序是由专门的工程师开发的,如果你自身有能力开发上位机程序也是可以的,但是老板不会给你加钱的 ^ ^, 做终端开发用得多的是串口调试,用到的工具多数是串口调试助手
如果你是指STM32的开发环境,一楼二楼回答得很好


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13255994.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-27
下一篇 2023-06-27

发表评论

登录后才能评论

评论列表(0条)

保存