背景说明
手头有一个单片机的Lora模块,之前也用来开发了一个DTU和温度采集产品,但是对于单片机开发的整个流程,并没有特别清楚,只是用了官方提供的模块代码,增加了温度采集和modbus数据采集过程,并且增加了一些数据传输,加密解密的过程,主要集中在了代码的修改上。对于开发环境及工程搭建这里,并没有深入研究,所以今天来尝试一下,弄一个干净的编译环境及工程。
开发环境
这里用的软件是IAR ,可以自己去官网下载再注册,也可以下载此处的版本
网盘:提取码s2ro
安装过程就是比较简单了,下一步,继续,继续,……,就完事了
整个过程可以参考
安装过程
注册的过程稍微繁琐一点,不过为了免费,还是要耐心一点。
编译环境
ST芯片厂家为自己的产品提供了一系列的标准库,用来供开发者使用,我们可以在官网下载这个标准库
官网地址
在官网搜索栏搜索STSW-STM8016
能够得到最新的标准库,需要提供邮箱来下载。
下载解压后,我们得到了一个标准库,一个不能直接用的库。因为打开工程会报这样的错误
保存工程的时候会报这样的错误,ewp could not be written
这样的错误 debugger file could not be written
麻了,真是让人难受
最终还是决定自己创建自己的工程。
也不要想着在原来路径下删了工程文件重新创建,还是会有莫名奇妙的问题。
创建工程
代码准备
选择官方下载库里面的关键文件
拷贝到自己的工作目录下,目录名字自己定义,然后再创建一个工程目录,用来存放IAR生成的文件,以及一个src目录,用来存放自己的main.c及单片机的中断文件stm8l15x_it.c,整个目录大致如下
最后就开始在IAR中创建工程
工程创建
然后点击保存,将工程保存在自己的工程目录下。
添加group
然后添加几个group,这个group类似一个虚拟的文件夹。
我添加了lib,src和utils文件夹,分别存放库文件,自己的c文件和补充模块的c文件
导入c文件
右键group,导入c文件,这里我们只导入c文件。最终效果如下。
这里面的main.c和stm8l15x_it.c也是从标准库中的demo中复制过来的,并且这个demo用到了eval的补充模块,所以一并复制过来了。
工程配置
右键工程名—>选项(options)
首先配置自己的芯片型号
然后这里有一些头文件的检索路径,需要添加到工程中,并且增加芯片宏定义。
然后就可以愉快的编译了。
几个错误
点击st-link option bytes
解除烧写限制
如果遇到
Fri Mar 08, 2024 10:05:13: Failed to write chunk with size 1024 at address 0x8080: SWIM PROG error [42004]: Memory write error
那么就试试给单片机独立供电。
程序下载调试
工程默认是通过模拟器调试的,如果要连接芯片调试,需要用ST-link,连接好芯片的SWIM和RST线,然后配置选项
就可以愉快的进行调试咯。
注意事项
这个配置中的头文件路径,可以用相对路径来配置,例如
上面的路径,可以改为
这样,再复制移动工程之后,可以直接编译,不再受路径影响。
范例下载
本次提供一个串口的demo下载,内含了标准库的最新代码,可以直接编译使用
传送门
结束
最近时间比较多,所以开始整理一下手里做过的东西,单片机也是一块内容,毕竟没有专门做过这块的研发,所以写的内容也都是一些基础的东西,写下来,为了自己以后查看,也为了小同学门不再走弯路。
最近听闻tx某大神自我了断了,很是感到同情,真相怕是很难揭开了。毕竟tx基本垄断了整个民众的通讯交流,并且我们也无法低估资本的能力,无论是生病也好,压力大也好,自我了结怕是最坏的结果了。还是希望我们都能照顾好自己,毕竟头发已经不多了,请快乐多一点吧。
只要世界上还有这么多人口,那么资源永远是不够用的,必然会出现大鱼吃小鱼的结果。
做条咸鱼,有时候也是为了不让别人失去自己。