08 2019 档案
摘要:在嵌入式开发中,可以使用c标准库自带的库函数,而不用自己去早轮子,qsort 和bsearch就是其中的两个比较好用的二分法查找,前提是已经排序好的数据。下面的代码, 如果数据为排序,则要进行排序后,再查找。/*...
阅读全文
摘要:以stm32f103zet6为例,直接上图:
阅读全文
摘要:之前在《内存拷贝的注意事项》一文中提到过size_t,可能许多人对这个类型不太熟悉没有用过或者根本不敢去用,最近看到一篇文章对这个类型讲的比较详细,便翻译过来让不熟悉的同学可以知道它产生的原因以及如何使用。 ...
阅读全文
摘要:本文源于size_t的说明,看到比尔盖茨说过:640K内存对于任何人来说都足够了,所以找了一篇文章,学习一下~~一直以来都知道自己有关计算机底层的知识不是不扎实,前段时间跟着大佬们推荐在【极客时间】买了 徐文浩 ...
阅读全文
摘要:几句话了解C标准之间的关系C语言标准早期的计算机汇编语言是与机器平台紧密耦合的,为了屏蔽这种耦合,增加代码的可移植性,C语言随机出现。 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局...
阅读全文
摘要:1、https://zh.cppreference.com/,c、c++参考手册,2、http://www.cplusplus.com/,在线查看c、c++函数的定义及用法3、http://c-faq-chn.s...
阅读全文
摘要:早上焊接了一块朋友给的stm32f103zet6的开发板,起初,烙铁怎么都焊补上去,原来是烙铁头已经氧化,只能作罢!那里一个新的焊接,温度打到450,基本上,焊接就非常顺利,当然温度不要太高,以免弄坏pcb的阻焊...
阅读全文
摘要:焊接心得挺不错的,可以学习到了事情起因某日在调试stm32的时候,错将5v接入3.3v电源输入,开发板烧掉。而且因为jlink没拔掉,也一同阵亡了。光烧了个芯片把整个板换掉太亏,遂打算动手修复。 坏掉的J-Lin...
阅读全文
摘要:float fla = -1000; unsigned int *pfla = (unsigned int*)&fla; printf("fla=%X\n",*pfla);#includeint main(int...
阅读全文
摘要:int ID_Conv_Sentinel(int u16device_cfg_num){ int i8id; int size=0; int i=0; size = sizeof(Device_I...
阅读全文
摘要:部分参考了https://blog.csdn.net/wq3028/article/details/76204690同时在电脑上进行验证//温度,电磁阀传感器序号,方便数组定位typedef enum{ TC...
阅读全文
摘要:https://www.cnblogs.com/shangdawei/p/3279199.html 双向可控硅工作原理与特点 从理论上来讲,双向可控硅可以说是有两个反向并列的单向可控硅组成,理解单向可控硅的工作原理是理解双向可控硅工作原理的基础 单向可控硅 单向可控硅也叫晶闸管,其组成结构图如图1-
阅读全文
摘要:平台是cubemx5.3 keil5.26 带freertos,使用iar8.32,在上图中的use cmsis 打勾与否都能编译通过。
阅读全文
摘要:在使用notepad++工具的时候,很多情况下我们会遇到批量替换空行的操作,之前的操作方法是快捷键Crtl+h调出窗口选择替换栏,在查找目标栏中输入\r\n\r\n,替换为 栏中输入\r\n并选择全部替换,可实现批量删除空行的操作。随着Visual Studio Code的普及,之前notepad+
阅读全文
摘要:在IAR的Workspace窗口顶部的下拉菜单中有两个选项,Debug和Release。名字和数量可以在菜单栏的Project-->Edit Configuration中增删修改 每个选项都对应着一种配置(也就是...
阅读全文
摘要:STM32单片机极简方法 使用宏定义 代替复杂的重定向printf()函数,实现串口打印。(HAL库例程)https://blog.csdn.net/wu10188/article/details/9778698...
阅读全文
摘要:https://mp.weixin.qq.com/s/rGtgS9ZoHZQ7fPkzKp-0Tw另外可以参考我另一篇文章:https://blog.csdn.net/liming0931/article/det...
阅读全文
摘要:1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有...
阅读全文
摘要:通过strongerHuang的教程,实现了SWO的两种调试方法,1、在keil调试的过程中,使用debug printf viewer打印信息,2、在STM32 ST-LINK Utility中烧写程序并打印信...
阅读全文
摘要:假设一个 ADC 转换芯片的转化数据为补码形式,24 位精度。最大电压值为 0x07 fffff,最小电压值为 0x80 0000,转化为十进制如下表:十六进制 十进制0x7fffff 8388607...
阅读全文
摘要:阻塞模式和非阻塞模式...... 我的理解是:阻塞模式就像是一个延时函数,当这个函数没处理完那么,所有的按照流程需要执行的代码都不会被执行,要等到这个延时完成,类似 平时看书上写的LED灯闪烁,用的delay()一样..而非阻塞模式就像他定义的那样,一般用的是中断,执行这条语句的时候,开启相应的中断
阅读全文
摘要:in blocking mode 与n no-blocking mode有啥区别?HAL_I2C_Master_Transmit与HAL_I2C_Master_Transmit_IT一个是在blocking模式一...
阅读全文
摘要:转载:https://www.cnblogs.com/alexis/archive/2010/12/15/1907236.html 首先要隆重推荐http://www.moreofit.com/ 这个网站可以发现跟你输入网站类似的网站,如我们在地址栏中输入博客园的地址http://www.cnblo
阅读全文
摘要:鱼鹰 鱼鹰谈单片机 2月19日 预计阅读时间: 5 分钟 我们知道,数据分为两种,一种为只读,一种为可读可写,为了防止一些不变的数据被程序意外的修改,有必要对它进行保护。这就是 const 的作用。在单片机中...
阅读全文
摘要:原创: Osprey 鱼鹰谈单片机 2月17日STM32 有一个代码跟踪功能,即 ITM,这个调试功能非常强大,可以替代串口输入输出功能,而且只需要占用一根 I/O 线就可以实现。当然它的好处不仅仅体现在这里...
阅读全文
摘要:原创: eOsprey 嵌入式单片机软件开发 2018-12-17很久就知道了 # 和 ## ,但是都没怎么使用,直到最近的项目涉及到需要编写大量相似的代码之后才决定尝试使用 ## 去简化代码的书写。比如说我...
阅读全文
摘要:emOsprey 鱼鹰谈单片机 2月21日预计阅读时间: 4 分钟 和 const 不同(关于 const 可以看 const 小节),当一个变量声明为 volatile,说明这个变量会被意想不到的改变。最为...
阅读全文
摘要:鱼鹰Osprey 鱼鹰谈单片机 3月3日预计阅读时间: 4 分钟 “位运算有啥用,看看这个就知道了” 负数 左移:低位补 0 右移:高位补 1 左移数大于变量位数,都为 0 右移数大于...
阅读全文
摘要:鱼鹰 鱼鹰谈单片机 3月3日预计阅读时间: 8 分钟 “ 还在用 if 语句进行延时吗,试试 % 吧” 说完位运算,再说说其他的运算符。+ - * / 不用多说,应该都比较清楚,但是还是要注意的就是使用 /...
阅读全文
摘要:原创: 鱼鹰Osprey 鱼鹰谈单片机 3月2日预计阅读时间: 4 分钟 对于想入门操作系统的读者,我的建议是先学 uCOS II。原因有以下几点:1、最为重要的原因是网上相关资源非常丰富,这对于初学者来说...
阅读全文
摘要:https://mp.weixin.qq.com/s/CQQSV26Xvmt2xuAPFnh-YQ鱼鹰 鱼鹰谈单片机 3月3日预计阅读时间: 9 分钟“数据传输耗时又耗力?交给 DMA 去干吧!” 参考:st...
阅读全文
摘要:转载自https://mp.weixin.qq.com/s/ILgdI7JUBsiATFICyyDQ9wOsprey 鱼鹰谈单片机 3月2日 预计阅读时间: 6 分钟 这里的 FIFO 是先入先出的意思,即谁...
阅读全文
摘要:导读:在C语言的世界里,栈的地位非常举足轻重,许多错误都可能和栈设置有关,那么该如何确定栈的大小? 今天分享一点栈知识,帮助你确定栈的大小,参考链接请点击下方的阅读原文。 其实很多编译工具是可以获取函数调用信息的,比如: KEIL 平台 可以使用参数: --callgraph:生成一个静态调用图(h
阅读全文
摘要:导读:在C语言的世界里,栈的地位非常举足轻重,许多错误都可能和栈设置有关,那么该如何确定栈的大小?今天分享一点栈知识,帮助你确定栈的大小,参考链接请点击下方的阅读原文。其实很多编译工具是可以获取函数调用信息的,比...
阅读全文
摘要:上次编写中,已经提到该软件的功能了,可以增加调试手段。编译出axf文件-keil和out文件-iar,注意keil在output文件名是,不能有“.”既NL_ZKTP3_V1.0是不行的,要命名为NL_ZKTP3...
阅读全文
摘要:用最新的cubemx生成f103的代码(带freertos系统),如果用iar编译,可能会出现intrinsics.h is already included previously!的错误,如果没有待freert...
阅读全文
摘要:Menu Text填写上我们期望的名字,我们可以填入格式化代码,command内填入AStyle的地址, Argument内填入参数: --style=ansi -s4 -S -Y -D -xe -k1 -j -c -xL -p -U $FILE_PATH$ 参考了https://blog.csdn
阅读全文
摘要:以下转载自https://www.cnblogs.com/yangguang-it/p/7123727.html FreeRTOS 的任务栈设置不管是裸机编程还是 RTOS 编程,栈的分配大小都非常重要。 局部变量,函数调用时的现场保护和返回地址,函数的形参,进入中断函数前和中断嵌套等都需要栈空间,
阅读全文
摘要:https://www.cnblogs.com/yangguang-it/p/7156445.html#4217682 下面对 FreeRTOS 优先级相关的几个重要知识点进行下说明,这些知识点在以后的使用中务必要掌握牢固。 FreeRTOS 中任务的最高优先级是通过 FreeRTOSConfig
阅读全文
摘要:http://www.stmcu.org.cn/module/forum/thread-610230-1-1.htmlhttp://www.stmcu.org.cn/module/forum/thread-616...
阅读全文
摘要:引言嵌入式系统的开发最终需要将编译好的代码下载到具体的微控制器芯片上,而不同厂家的微控制器芯片有不同的下载方式。随着技术的发展和应用需求的更新,用户程序加载趋向于在线编程的方式,越来越多的芯片公司提供和开放了用户...
阅读全文
摘要:IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件...
阅读全文
摘要:互斥信号量可以在资源保护的时候很有帮助。用于控制在两个或多个任务间访问共享资源。任务1里面用互斥,那么任务2只能等任务1访问完再访问同一个变量。比如全局变量double gADC_value[CH_ADC_NUM...
阅读全文
摘要:手上有stlink下载器,正好看到官网有这个工具,可以在运行中实时查看变量的数据。这一点和ucos的ucprobe很类似。参考https://mp.weixin.qq.com/s?src=11×tamp...
阅读全文
摘要:参考:参考《鱼鹰单片机》https://blog.csdn.net/weixin_42876465/article/details/88356890其实很简单默认情况是生成 .axf 文件的,但有可能不能生成该文...
阅读全文
摘要:1、安装vscode。 2、安装插件tcc。小巧,快速,符合ansi c, 法国大神级别程序员开发的编译器。 3、编写C代码,F10运行,即可得结果,对于验证一些语法很快捷,很方便。只需三步!!
阅读全文
摘要:https://www.cnblogs.com/CodeWorkerLiMing/
阅读全文
摘要:https://blog.csdn.net/baidu_31437863/article/details/82178708 STM32(五) Modbus https://blog.csdn.net/WHL_YSU/article/details/87864362 基于STM32实现 Modbus协
阅读全文
摘要:为确保消息数据的完整性,除了验证消息CRC之外,建议实现检查串行端口(UART)成帧错误的代码。如果接收消息中的CRC与接收设备计算的CRC不匹配,则应忽略该消息。下面的C语言代码片段显示了如何使用逐位移位和异或...
阅读全文
摘要:为确保消息数据的完整性,除了验证消息CRC之外,建议实现检查串行端口(UART)成帧错误的代码。如果接收消息中的CRC与接收设备计算的CRC不匹配,则应忽略该消息。下面的C语言代码片段显示了如何使用逐位移位和异或运算来计算Modbus消息CRC。使用消息帧中的每个字节计算CRC,除了包含CRC本身的
阅读全文
摘要:from:https://www.ni.com/zh-cn/innovations/white-papers/14/the-modbus-protocol-in-depth.html from:https://www.ni.com/zh-cn/innovations/white-papers/14/
阅读全文
摘要:转载自:https://www.rfwireless-world.com/Tutorials/Modbus-Protocol-tutorial.html 这个Modbus教程涵盖了modbus协议基础,ASCII和RTU帧结构,Modbus协议工作。Modbus协议教程还描述了应用示例。 什么是Mo
阅读全文
摘要:转自:https://jingyan.baidu.com/article/2c8c281dbdfa9f0009252a74.html ModBus通讯规约 ModBus通讯规约允许变送器与施耐德、西门子、AB、GE等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与第三
阅读全文
摘要:在其他的rtos中,基本上也有类似的功能,ucos freertos,要是rtos的时候,务必选择自带的rtos功能,和裸机运行时有区别的
阅读全文
摘要:<ignore_js_op> O1CN01P1wxTI1dCdw5nAeMO_!!85243700.jpg (287.43 KB, 下载次数: 0) 下载附件 保存到相册 2019-6-19 11:24 上传 O1CN01P1wxTI1dCdw5nAeMO_!!85243700.jpg (287.4
阅读全文
摘要:https://www.cnblogs.com/axinno1/p/8521481.html https://blog.csdn.net/xukai871105/article/details/21652287 freemodbus modbus TCP 学习笔记 freemodbus modbus
阅读全文
摘要:关于STM32的I2C硬件DMA实现 网上看到很多说STM32的I2C很难用,但我觉得还是理解上的问题,STM32的I2C确实很复杂,但只要基础牢靠,并没有想象中的那么困难。那么就先从基础说起,只说关键点,不...
阅读全文
摘要:就是使用信号量等rtos自带特性的时候,务必先初始化然后在发生信号量或接收。而且在中断中发送信号量或队列的时候,务必把使能中断的语句放在初始化freertos之后,尤其是cubemx生成的代码,默认是把中断初始化...
阅读全文
摘要:SPI的通信速率通常比较快。目前用到的ADS1259芯片,可以达到2-4MHz,可能可以更加快。一般spi都是从慢速开始调试,但是具体到某个芯片,应该核对芯片时序图,比如ti的ds1259,数据手册上面说可以达到...
阅读全文
摘要:http://www.waveshare.net/wiki/Main_Page里面有很多资料STM32开发软件目录 编译软件Keil MDKSTM32CubeMX下载软件STM32 ISP for F1软件Fla...
阅读全文
摘要:其实RS485不算什么协议,只是物理层做了差分传输,AB两线的电压差来表示0,1,0,1,可靠性和距离更加好,因此,一个串口外设只能作为半双工使用,而RS232是可以全双工的。max485模块可以直接与stm的串...
阅读全文
摘要:这篇文章是串口中断的文章——STM32基于CubeMX的高速串口收发程序(中断模式)比较有帮助。http://www.stmcu.org.cn/module/forum/thread-616613-1-1.htm...
阅读全文
摘要:参考:https://blog.csdn.net/toopoo/article/details/80012317https://blog.csdn.net/morixinguan/article/details/94414622https://blog.csdn.net/Wekic/article/
阅读全文
摘要:Return Value On success, the total number of characters written is returned.If a writing error occurs, the error indicator (ferror) is set and a negat
阅读全文