单片机软件开发
文章平均质量分 82
andylauren
嵌入式爱好者
展开
-
基于STM32F407的coreJSON使用教程
coreJSON是FreeRTOS中的一个组件库,支持key查找的解析器,他只是一个解析器,不能生成json数据。同时严格执行 ECMA-404 JSON 标准。该库用 C 语言编写,设计符合 ISO C90 和 MISRA C。它已被证明可以安全使用内存,并且无需堆分配,使其适用于 IoT 微控制器,而且还可以完全移植到其他平台。内存使用如下:内存使用情况JSON 库中的所有函数仅在提供的栈上运行,并且仅使用栈上的局部变量。为了支持仅静态使用,根据需要重新解析,这样就不需要保留状态。解析严格性。原创 2024-02-19 11:38:50 · 869 阅读 · 0 评论 -
Unity(单元测试)在STM32上的移植与应用
Unity Test是一个为C构建的单元测试框架。本文基于STM32F407为基础,完全使用STM32CubeIDE进行开发,移植和简单使用Unity。单片机型号:STM32F407VET6软件:STM32CubeIDE Version: 1.14.1 Unity Version:2.6.0。原创 2024-02-14 17:48:07 · 1715 阅读 · 0 评论 -
letter shell在STM32F4上基于freeRTOS的移植
是一个C语言编写的,可以嵌入在程序中的嵌入式shell,主要面向嵌入式设备,以C语言函数为运行单位,可以通过命令行调用,运行程序中的函数。拥有命令自动补全、快捷键功能定义、命令权限管理、用户管理、变量支持、代理函数和参数代理解析等功能。letter-shell: letter shell一个嵌入式小型shell,特别适用于单片机系统。原创 2024-01-18 16:48:14 · 996 阅读 · 0 评论 -
基于匿名上位机V7的数据通信代码
代码借鉴并在此代码基础上进行修改。截止文章发布时匿名上位机版本为V7.2.5.26。原创 2024-01-04 14:49:33 · 948 阅读 · 0 评论 -
STM32使用printf重定向到USART
STM32使用printf重定向到USART原创 2023-12-26 13:41:43 · 843 阅读 · 2 评论 -
关于using关键字的一点看法
在VB、C++、C51等编程中,都可看到using关键字。具体到C51中,中断声明中用 using 1,它调用的所有子函数也都用 using 1,也就是说,如果中断函数中需要调用其它函数,则被调用函数所使用的寄存器组必须与中断函数指定的寄存器组相同。……否则会产生不正确的结果,这一点必须引起足够注意。 如果在中断服务函数 ISR 中使用寄存器,那么必须处理好 using 的使用问题:转载 2016-08-26 11:50:47 · 632 阅读 · 0 评论 -
cc2530 用SmartRFProg烧hex时出错处理记录
在生成hex文件时出错错误提示:HEX file content at address 0x4A390 exceeds chip's 256 kB flash size解决办法如下:f8w2530.xcl文件。在 “Projects\zstack\Tools\CC2530DB\”目录下,也可以通过IAR编译环境的左侧Workspace窗口打开找到两行被注转载 2016-09-21 10:08:24 · 2496 阅读 · 0 评论 -
Source Insight中的多行注释
我们经常要对一整段代码进行注释,很多代码编辑器都提供了这样的功能:用快捷键“Ctrl + /”来实现“//”的多行注释。但是在用source insight的时候,发现竟然没有这样的功能。于是在网上搜了一下,sourceinsight里面的多行注释可以用宏来实现。以下是实现多行注释的宏代码(在别的网站copy过来的,经过测试,还是很好用的):macro MultiLineComment转载 2017-04-06 22:21:12 · 11417 阅读 · 0 评论 -
keil中使用Astyle格式化你的代码的方法2篇合
关于AstyleAstyle 的全称是Artistic Style的简称,是一个开源的源代码格式化工具,可以对C,C++,C#以及Java等编程语言的源代码进行缩进、格式化、美化。Home Page: http://astyle.sourceforge.net/Project Page: http://sourceforge.net/projects/astyle/在Kei转载 2017-09-11 19:45:39 · 1162 阅读 · 0 评论 -
KEIL C51 printf格式化输出特殊用法
KEIL里扩展出了b,h,l来对输入字节宽的设置:(1)b八位(2)h十六位(默认)(3)l三十二位在Keil C51中用printf输出一个单字节变量时要使用%bd,如unsigned char counter;printf(“Current count: %bd\n”, counter);//输出8位”十进制有符号整数”printf(“Current count转载 2017-11-24 19:09:59 · 9855 阅读 · 2 评论 -
IAR编译ZStack-CC2530,生成HEX文件完全配置
这两天来一直在做Zstack-CC2530的实验,读了手册也看了教程,却怎么也做不出应该有的结果,以为是自己改了协议栈的源代码,一度把协议栈删除又安装N次,IAR(7.51A)卸载重装,要不是电脑里面装了Visual Studio 2008 Teamedition以及一大堆的硬连接到第二硬盘,我早就重装系统了!!一度陷入绝望中~~今天偶然看到一篇说IAR配置的文章,才恍然大悟~TI啊!!你发布...转载 2018-12-03 22:34:50 · 721 阅读 · 0 评论 -
浅谈单片机程序设计中的“分层思想”和“时间片轮思想”
分层的思想 分层的思想,并不是什么神秘的东西,事实上很多做项目的工程师本身自己也会在用。看了不少帖子都发现没有提及这个东西,然而分层结构确是很有用的东西,参透后会有一种恍然大悟的感觉。如果说我不懂LCD怎么驱动,那好办,看一下datasheet,参考一下阿别人的程序,很快就可以做出来。但是如果不懂程序设计的思想的话,会给你做项目的过程中带来很多很多的困惑。参考了市面上各种各样转载 2016-08-26 11:26:57 · 5047 阅读 · 1 评论 -
FatFs中文介绍和移植方法
本文很不错,故转载如下,但不是最新版的FatFS。 FatFS的官方网站 提供了详细的资料——————————————一下为转载—————————————————————-下面是我做的一些中文解释。大家可以到原网站获取更多的信息。英文原文:FatFs is a generic file system module to implement the FAT file syste转载 2016-08-26 11:13:45 · 8289 阅读 · 0 评论 -
FatFS文件系统详解-附移植建议
最近做的spi flash,本打算弄个文件系统,由于之前用过了JFFS、YAFFS和TrueFFS,代码量都相当的大,这次想找款代码量不那么吓人的,学习一下,听说配置会相对复杂一些。选来选去,最终选定了FatFS,代码量足够的小,最新的R0.09版本只有1个.c文件(当然,还有一个底层的要自己写,option文件夹里的无视),老点版本就更小了。而且更新很频繁,用户量也够大,就选定它了。尽管最后由于转载 2016-08-22 09:58:52 · 3226 阅读 · 0 评论 -
altium designer 如何放置compile mask
在绘制pcb的时候经常会根据不同情况对相似的原理图进行修改,有些则是根据不同产品不同配置对外围器件进行增减,一般的做法是在一个完整的原理图上对需要增减的器件进行compile mask设置,被选中的部分会进行PCB编译,取消则不进行PCB编译。具体的设置方法是原理图界面上place-->directives-->compile mask,拖动鼠标,框住不需编译的电路即可。汉语的路径是:放置原创 2016-08-27 12:10:10 · 10711 阅读 · 1 评论 -
IAR中的快捷键!
CTRL+SHIFT+SPACE 模版使用(包括if、for、class等)CTRL+B 括号匹配 选择括号内的多行代码CTRL+T 自动缩进,格式化选中的代码,缩进格式在TOOLS->OPTIONS->EDITER->Auto Indent->CONFIGS转载 2016-08-17 22:40:33 · 1343 阅读 · 0 评论 -
IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置
这两天来一直在做Zstack-CC2530的实验,读了手册也看了教程,却怎么也做不出应该有的结果,一度陷入绝望中~~今天偶然看到一篇说IAR配置的文章,才恍然大悟~TI啊!!你发布Zstack的时候为什么不把IAR该有的配置都配置好呢!!白白浪费了两天的时间啊,你还我时间!! 网上看了无数的教程,什么从零开始学Zstack啊,Zigbee入门啊,奥特曼读书日记啊等等等等,无一例外都转载 2016-08-17 22:41:19 · 1572 阅读 · 0 评论 -
超级终端转义字符
ASC II码表和转义字符================================ 我们输入的显示字符都是ASC II的标准,了解这个有必要。对于一些特殊的指令,ASC II则用转义字符更为方便。 ------------ Decimal Octal Hex Binary Value转载 2016-08-17 22:42:23 · 3389 阅读 · 0 评论 -
STM32F系列JTAG口重映射成为普通GPIO
首先,STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。具体方法如下:在GPIO_Configuration(); // 配置使用的 GPIO 口:GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);// 改转载 2016-08-17 22:45:29 · 1840 阅读 · 0 评论 -
面向51单片机的Keil uVision4基本数据类型简介
在标准C语言中,存在着如下六种基本数据类型:1、char:字符型;2、short = short int:短整型3、int:整型4、long = long int:长整型5、float:单精度浮点型6、double:双精度浮点型而面向51单片机的Keil uVision4对此进行了简化, 因此,可以理解为只存在如下四种基本数据类型:1、char:字符型2、int转载 2016-08-17 22:48:48 · 5688 阅读 · 0 评论 -
keil MDK 中使用虚拟串口调试串口
题目有点拗口,想利用串口调试Modbus啊,GPS啊什么的,可是手头没有硬件,怎么办?其实字节KEIL MDK和VSPD(这里两个软件网上都很容易就可以下载到破解版,如果找不到可以给我联系)就可以,这样调试串口就会很方便了。看了很多的文章,写的都很简单(其实也很简单:))。给出个详细一点的教程。1. 利用VSPD将PC上的两个虚拟串口连接起来。如图我将COM4 和COM5连接转载 2016-08-19 15:13:37 · 41979 阅读 · 11 评论 -
基于STM32和SIM900A的无线通信模块设计
设计一个可以实现短信收发与数据无线传输的模块的要求,本文采用了ARM Cortex—M3内核的主流产品STM32作为主控芯片,采用SIMCom公司的SIM900A作为通信芯片。在查阅大量相关文献以及相关芯片的数据手册之后,本文设计了一个远程无线通信模块。该模块在实验室试运行一周后,没有出现掉线的情况,数据收发的速度也很快。该模块具有性能稳定,外形小巧,性价比高等优点。厂方投入使用之后,反应良好。转载 2016-08-19 15:29:09 · 24020 阅读 · 10 评论 -
STM32F407ZG单片机晶振由例程默认推荐的8M换为自定义的4-26M时的注意事项
相信作为一名STM32新手,大家都是从官网上下载例程来学习。现在firmwave的最新版本为1.1.0,下载地址为http://www.st.com/stonline/stappl/resourceSelector/app?page=resourceSelector&doctype=FIRMWARE&SubClassID=1521在这个例程里面,默认用到的是8M的外部晶振,现在就有转载 2016-08-20 09:59:16 · 8699 阅读 · 2 评论 -
stm32f407 discovery ISP
今天调了一天的ISP程序,把测试经历记录下来吧。首先下载了ST官网的flash loader demonstrator.exe 但是总是提示“no response from target...”。网上有很多自己写的程序,但是还是觉得官网的更靠谱。在网上找了一天,总结下来:1.boot0是否接到了高电平(3v 可以)2.连接的目标板的串口是否在reference man原创 2016-08-20 10:01:28 · 1979 阅读 · 0 评论 -
STM32 SPI NSS大揭秘
SSM可以控制内部NSS引脚与SSI(一个寄存器,软件模式)相连,还是与NSS外部引脚(真正的STM32引脚,硬件模式)相连。真正作用的是内部NSS引脚(内部NSS引脚才真正连接到SPI通信控制器上)SPI从模式的配置(MSTR=0)1.硬件模式:SSM=0,当外部NSS为低电平时,内部NSS也为低电平,此时可以传送数据。2.软件模式:SSM=1,并SSI=0.让内部NSS引脚为低转载 2016-08-20 10:03:48 · 13706 阅读 · 11 评论 -
为sourceinsight添加makefile、kconfig、*.S文件支持
大家用source insight看linux源码的时候都遇到这么一个麻烦,makefile和kconfig中的文字在搜索的时候不能找到,这是因为source insight默认是不选makefile的,也没有konfig这种类型的文件。下面就讲一下 如何添加makefile:打开Source Insight,在新建工程之前,进入Options -> Document Option转载 2016-08-16 22:56:12 · 553 阅读 · 0 评论