本标准涵盖便携式,电池供电的红外温度计和影响食品安全准确性的附件。
本标准不包括非食品用途的温度指示设备。
2023/8/21 14:47:23 2.69MB ul 2333 红外测温仪 食品
1
纯人工翻译中文版本,STM32CubeMX用户手册中文版,STM32CubeMX用户手册中文版UM1718-翻译版.菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。
这个工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。
说到freeRTOS,这里就多说两句。
全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。
不过我们可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。
关闭了时间片调度,只有发生vTaskDelay的时候才会上下文切换。
只要代码合理访问全局变量可以不加保护的。
因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。
源码较少,这里就不过多介绍。
关闭时间片不是网上说的configUSE_TIME_SLICING这个宏定义,老鸟发现这个宏压根没用哈,嘿嘿。
阅读源码可以找到相关宏配置。
不过不建议关闭,时间片调度也可以让一个任务在执行一定时间后切换到其他就绪任务去执行。
如果有freeRTOS相关问题,可以留言给我。
废话说多了点哈,继续我们的STM32CubeMX。
下面我们来讲讲这个工具的作用,讲完后,可以自己下载一个试试,挺简单不多介绍。
到官网下载STM32CubeMX,并安装。
1:芯片选型打开STM32CubeMX,我们点击newproject,我们就可以进行芯片选型,如果你下载了打开了这个工具,是不是很惊讶,stm32的所有产品型号都在里面,而且左下提供了资源勾选,比如你要以太网支持,勾选以太网选项,所有的支持以太网的stm32芯片才会被显示,旁边还有个max的栏目指示了芯片最多支持该功能的个数。
空白的一般默认只有一个。
下图是我勾选以太网的截图。
上图不仅提供了芯片,还提供了价格,是否在售,封装,存储,频率等一些列信息。
除了cpu资源可以选型外,上面还提供了脚多少,存储大小等非常灵活的选型方式。
我们选择其中一个的单片机后。
右上部分给我们提供了完美的支持。
第一个选项提供了改cpu的特性,我们可以大概的了解选中的cpu资源。
第二个选项提供该cpu框图,截图图片太大,这里就不截图了。
第三个选项提供了cpu文档,这个文档非常多也非常全面,基本不用在网上东找西找了,主要给硬件工程师用。
第四个选项提供了cpu的相关设计资源,软件编程文档,给软件工程师用,非常全面,包括网上很少用到的文档资料,比如系统移植相关的底层资料(堆栈,指令,汇编)。
第五个选项提供了芯片购买途径,这个每个人自己选择吧。
第六个选项开始工程,芯片选好了,就可以开始工程。
2:设定芯片。
芯片选好后,可以开始设定芯片。
这就是软件工程师的好帮手呀。
比如我要以太网功能,勾选上以太网即可,他就会自动分配出芯片对应的以太网接口。
如下图:上面我选了标准的MII接口。
很多人可能就不理解,你勾了个以太网,咋报错了。
老鸟告诉你为啥变红了,stm32有个复杂的功能就是io口复用,勾选mii后分配的io口和spi2以及iis口重合了,所以这个工具非常智能的提示了出来,非常神奇吧。
告诉你他们不能使用了。
还有些变黄了,说明他们可以选择性使用,真是太方便了,省去了查资料慢慢找io的痛苦。
比如我们还要给它个外部时钟。
我们勾选时钟即可,响应的时钟脚就会分配出来。
如果要将某个脚设置成输入输出那就更简单了,鼠标点选对应的io口选择对应功能即可,比如我单击PA6,它的所有功能可以轻松选择:软件使用比较简单,不过多解释,一看就明白,设置完芯片功能后,我们就设定系统各项功能时钟。
选择时钟设置页面(clockconfiguration)时钟轻松设定,如下图,简单明了,不过多解释了:时钟配置完成后,可以切换到configuration选项对功能进一步设定,里面参数都是常用的功能,设置较为简单。
就不多举例了,比如网络功能里面设置mac地址等。
3:生产初始化代码经过上面的图形化设定,我们可以直接生产初始化代码。
省去我们查阅资料慢慢配置的的环节,时间更多的利用在应用层设计。
点击project下面的生成代码选项。
输入工程名(根据你项目需要起名),这里我就随便输入一个名字。
设定好相关参数。
点击ok即可。
顺便说下,这个工具是配带教程的,我这里只是告诉大家有这样个工具可以加速开发,具体设置参考官方教程。
生成后打开文件夹内容如下:上图的inc和src文件夹里面是生成的主要代码,其他几个文件夹里面的东西,大家可以根据自己需要选择。
src文件夹文件如下:打开熟悉的ma
2023/8/19 21:31:32 11.41MB stm32 仿真
1
现代外国统计学优秀著作译丛应用线性回归第二版
2023/8/13 12:53:06 9.64MB 线性模型,回归
1
之前一直在CocoaChina上面潜水,虽然做iOS开发也快2年了,但是总觉得缺少了点什么。
以前查看英文API文档,有些细节总是记不住,每次看完之后也没什么印象。
忽然有一天有人向我抱怨说查看官方英文API文档太痛苦了,然后我就想如果我把一些常用的官方文档翻译为中文的话,或许可以帮助这批需要帮助的人,然后偶就心血来潮,开始了自娱自乐的翻译之旅。
帮助别人的同时,自己也获得快乐。
多线程编程在开发应用的时候非常有帮助。
比如你可以在后台加载图片,等图片加载完成后再在主线程更新等,或者在后台处理一些需要占用CPU很长时间的事件(比如请求服务器,加载数据等)。
要体会多线程编程的好处,还得多实战,结合使用多种多线程技术。
特别要注意RunLoop的使用,很多开发者在编写多线程应用的时候很少关注过RunLoop。
如果你仔细阅读并掌握RunLoop的细节,将会帮助你写出更优美的代码。
同步是多线程编程的老生常谈,估计大学时候大家都基本熟悉了同步的重要性。
本文在翻译过程中发现很多地方直译成中文比较晦涩,所以采用了意译的方式,这不可避免的造成有一些地方可能和原文有一定的出入,所以如果你阅读的时候发现有任何的错误都可以给我发邮件:xyl.layne@gmail.com
2023/8/13 9:57:02 1.39MB iOS开发 多线程 编程
1
VDO_SLAM中文翻译版
2023/8/6 19:57:21 1.77MB dslam
1
全时速范围自适应巡航技术标准ISO22179中文翻译版,本标准包含了基本的控制策略,最低功能需求驱动接口组件、故障诊断和失效分析等内容。
需要的朋友们可以放心下载,手工翻译,可能会有部分内容翻译的不够准确,还希望指正!
2023/7/15 5:49:12 1.01MB ISO22179 ACC FSRA 国际标准中文
1
UG二次开发C++调用UGAPI的所有参数中文翻译版方便查找
2023/7/11 4:14:20 13.6MB NXopen API 中文帮助
1
LibNoise分形噪声函数库的JAVA翻译版,个人开发,仅供参考。
包中包含:异常模块:noise.Exceptionnoise.ExceptionInvalidParam无效的参数异常。
noise.ExceptionNoModule无模块异常,无法检索到该源模块noise.ExceptionOutOfMemorynoise.ExceptionUnknown模型模块:noise.model.Line线noise.model.Plane平面noise.model.Sphere球体noise.model.Cylinder圆柱发生器模块:noise.module.Perlin培林噪声 noise.module.RidgedMulti脊多重分形噪声noise.module.Billow巨浪 value=|perlin_value|*2-1.0;noise.module.Voronoi细胞噪声,Voronoi图noise.module.Const常量 value=const;noise.module.Cylinders圆柱noise.module.Checkerboard棋盘格 value=(floor(x)&1^floor(y)&1^floor(z)&1)!=0?-1.0:1.0;noise.module.Spheres球体选择器模块:noise.module.Select选择noise.module.Blend混合 value=((1.0-(modules[3].value+1)/2)*modules[0].value)+((modules[3].value+1)/2*modules[1].value);修饰器模块:noise.module.Invert倒置 value=-value;noise.module.Abs绝对值 value=|value|;noise.module.Clamp截取 value=(valueupperBound?upperBound:value);lowerBound:下截取值;upperBound:上截取值noise.module.Curve曲线 value=noise.module.Curve.ControlPoint控制点noise.module.ScaleBias偏移缩放, value=value*scale+offsetnoise.module.Turbulence湍流 value=modules[0].getValue(x+modules[1].value*power,y+modules[2].value*power,z+modules[3].value*power);noise.module.Exponent指数 value=(pow(abs((value+1.0)/2.0),exponent)*2.0-1.0);组合模块:noise.module.Add添加 value=modules[0].value+modules[1].value;noise.module.Max最大值 value=max(value);noise.module.Min最小值 value=min(value);noise.module.Multiply乘法 value=modules[0].value*modules[1].value;noise.module.Power权重 value=pow(modules[0].value,modules[1].value);变压模块:noise.module.Displace位移替换,扭曲value=modules[0].getValue(x+modules[1].value,y+modules[2].value,z+modules[3].value);noise.module.RotatePoint点旋转noise.module.ScalePoint点缩放,轴缩放 value=modules[0].getValue(x*xScale,y*yScale,z*zScale);noise.module.Terrace露台,梯台noise.mod
2023/7/8 13:24:28 53KB java 噪声 分形 地形
1
电动汽车领域代码生成规范MAAB:MAAB_Style_Guideline_Version3p00_doc,翻译后转换为中文版
2023/6/30 19:50:48 2.86MB 代码生成 MAAB
1
JESD204B协议规范和中文对照版,详细解释JESD204B协议内容和应用开发
2023/6/6 10:30:28 3.58MB JESD20 FPGA AD9371 高速接口应用
1
共 99 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡