首页 栏目首页 > 生意 > 正文

ArmCortex-M23开发板上手:空调控制项目总结帖

前面记录了空调控制的各个模块的开发过程,这篇帖子对于之前的开发过程做一个总结。包含电路介绍、过程演示以及固件,开头主要介绍Flash的操作。确认存储使用的FLash地址


(相关资料图)

1、查看Flash:

借助Jlink查看Flash的数据。

连接芯片:

读取整片Flash:

查看Data Flash区域:

写Flash的程序无法运行:R_FLASH_LP_bgo_example()。野火以及官方的资料使用的Flash都是基于外部Flash的,参考意义有限。最终参考FPS包自带的例程进行Flash的操作。2、参考例程读写 Data Flash

当前方案:采用系统的API加入延时后,Flash写入成功(写入地址:0x4010_0000U):

Flash操作关键代码(注意:去掉了擦除检查,加上了延时!):

3、采用共用体存储浮点型数据

参考:https://code84.com/454972.html

4、当前存储遇到的问题

存储数据读取数据有问题,写入数据读取回来的数据匹配不上。

存取的数据为:

读取的数据:

首先定位:保存数据(进行Flash写操作)其实已经出问题了:

修改代码后,当前保存的数据没有问题:

解码的数据保存的数据

保存数据到127时出错(读取回来的数据为144):

定位到原因:当前数据量太大了,1片扇区为1024字节,1个温度数据就高达600个字节,每次默认只擦除1个扇区,所以在1K地址外的数据没有擦除就执行了写入,发生错误。5、设置每一个电平的时间为32bit,使用4字节存储

26摄氏度的命令存储地址:

实际上,按照高电平+低电平的存储,每一条控制命令的存储字节为1200字节(后面想办法再压缩)。

1个电平存储的时间使用32bit数据来存储,也就是4字节存储。当前默认1条命令为139个PWM,为了预留部分空间,每一条命令分配150*2*4字节进行存储。

当前在Data Flash中,开辟了3块区域,分别存储2条温度指令,以及1条关机指令。

6、温度控制逻辑

1、解码温度数据,测试命令能够成功控制空调;可以成功控制,将数据保存到Flash,温度控制的时候将数据读取出来,等待信号控制。

2、大于27摄氏度,打开空调;温度低于26摄氏度,关闭空调。

保存温度数据:

选择保存数据的地址:

7、系统构成

整个系统为了后期可以方便增加或者减少模块,所有采用杜邦线连接各个模块。因为红外发射模块的有效距离小于3米,所以使用了延长线-模块如前面介绍。

固件代码:

oled12864.zip(60.26 KB)

oled12864 - code.zip(9.43 MB)

复制链接https://mbb.eet-china.com/forum/topic/130402_1_1.html,或点击阅读原文帖内下载。

关键词:

最近更新

关于本站 管理团队 版权申明 网站地图 联系合作 招聘信息

Copyright © 2005-2023 创投网 - www.xunjk.com All rights reserved
联系我们:39 60 29 14 2@qq.com
皖ICP备2022009963号-3