| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> AB32VG1项目之智能晾衣架 -> 正文阅读 |
|
[嵌入式]AB32VG1项目之智能晾衣架 |
正好公司项目已经完成了,进入了测试期,也赶上rtt与发烧友举办这个risc-v的大赛,所以就报名了,一来可以加深一下对rtt的理解,二来也了解下中科蓝讯的芯片。 开发过程还是之前的套路,先把开发资料下载下来,然后就是看资料,写测试程序,最后集成。不再重复了,只是记录下主要的里程碑及遇到问题。 前期准备主要是熟悉一下studio开发环境 分离工程从rt-thread中分离出ab32的工程,之前操作过很多遍了,不再展开 导入工程在rt-thread studio中选 文件 -> 导入 -> 选择 “RT-Thread Studio项目到工作空间中” ->选择好分离出的文件为根目录,点完成,自动导入项目。这种方式不行的话,就新建 一个基于rt-thread的项目,选基于ab32vg1的开发板即可,一样可以导入demo工程。 安装包安装最近的rt-thread 包找到sdk manager ,一定要选latest安装包,不是studio自带的那个版本 AB32VG1的 SDK包安装后最新rt-thread包后,才能进行这一步的安装。否则会提示错误 RISC-V-GCC工具链下载不出意外的话,应该是可以直接编译通过,找到的资料都是用downloader下载。暂不支持仿真。 硬件搭建开发板上的3.3V能否可用的问题??因为要外接磁传感器,需要3.3V,开发板上自带的vcc3V3能否可用呢???看了下原理图,蓝讯这个开发板上不带3.3Vldo,本身这个3.3V是AB32VG1内部稳压输出的,且已经带载了红外,三色灯,TF卡座等外设,查看它的数据手册,最大输出电流只有150ma,还是偏小的。经过权衡,3.3v还是利用之前板子上的电压吧。 大体的硬件规划大体需要的资源:
需要的资源不多,开发板给留出的管脚够用,可以直接使用开发板上提供的按键输入,三色指示灯,另外,还可以再打开一路串口,实现程序状态的打印。其他功能电路,也不是很复杂,直接用之前项目的板子外接线就可以,也免去的画板及重新焊接的时间。 不知怎么弄的,sht30及dht11,直接用软件包都没有实现读取操作,可以用一头雾水来形容,追踪了一下代码,也没发现什么问题。看网友用18B20,并且都是接到PF0口来实现读取温度的,心中很疑惑,也问了厂家的技术,他也买了一个sht30来试,也一直没有回复。所以这块先放放吧,等待官方回复。去掉了,这块在stm32上是没有任何问题的,再说也没具体的实际意义,几乎没有阳台是可以通室外的,考虑再三,还是去掉了。 软件设计控制逻辑设计按键线程实现使用MultiButton,软件包。使用,详见MultiButton官网说明,需要根据上面控制逻辑的设计,添加自己的逻辑即可。 其他线程的实现按控制逻辑实现就可以,不再展开。 代码地址视频地址遇到的问题rt-thread studio不习惯,还是用menuconfig来配置,但scons构建时,生成什么格式呢?答案是不可以,再用env来开发了,scons --target前期是要工程里有一个mdk或其他工具的模板文件。找了一圈,目录是没有的,还是返回studio的开发环境吧。 新建studio工程后,没有rtt配置及软件包的配置界面???还真不是工程的事,是自己对studio不熟悉。将导航器的内容,当作项目资源管理器来对待了。造成没有rtt配置选项。切换到,窗口 -> 显示视图 -->资源管理器,即可 直接用sht3x的软件包,没法读出温湿度问题??之前在stm32平台下,一直都是很顺利的,没有分析过源码,借这个机会,分析下。至于为什么要分析源码,因为,管脚压根就没有想要的波形输出。所以很有可能是初始化的时候就有问题。 关于IIC管脚的初始化在libraries -> hal_drivers -> drv_soft_i2c.c里,有如下代码:
若从上面的代码看,确实是看不出什么问题,暂且认为这里已经初始化好了。用示波器看,两个管脚确也波形输出,但只是一闪而过。 sht3x软件包如何操作模拟I2c?通过sht3x_init()完成了将注册好的i2c设备,到sht3x间的映射,同时也创建一个互斥量 dev->lock = rt_mutex_create(“mutex_sht3x”, RT_IPC_FLAG_FIFO);这个锁只有在单次读后和反初始化时,会释放,也只有在这两上时刻,才会再次读取到温湿度值,也就是调用sht3x_read_singleshot(sht3x_device)这个函数。然后,再调用i2c_core.c中,rtt提供的i2c底层操作函数。这只是一个大体的调用过程。 问题的跟踪,rt_i2c_transfer()这个函数一直返回-1,why???不能仿真,只能一个函数,一个分支的打印,追踪到i2c_core.c中rt_i2c_transfer()这个函数一直返回-1.为什么呢??? multibuttun软件包在哪里?在miscellaneous packages里。 dht11直接用软件包,按PA0与PFO打印输出不一样问题??如下图所示: 手头就两种传感器,都试了,直接用软件包一直也没调通,但逻辑和雷达是差不多的,不同的是雷达是控制上下电机,而温湿度是控制左右电机,仅此而矣。所以决定先不弄温湿度了,先把项目进行下去,用手动不一样可以控制吗? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:31:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |