你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Stm32mp157+qt+mqtt自测试demo

[复制链接]
寒门过河卒 发布时间:2023-2-8 15:54

Stm32mp157使用的是正点原子的开发板,区别在于正点原子开发板没有用到集成 PMIC 芯片,所以需要在设备树中添加电源节点。

跑Linux的芯片一般有多个电源,比如正点,具有1.345V、1.212V、3.31V、3.31V、0.67V,由PWR_ONRST和PWR_ON控制上电顺序,需要在stm32mp157d-atk.dtsi添加电源节点信息。如图:

111.png

原因是内核和外设的电源供电不同,另外上电顺序必须严格按照芯片手册要求,不然容易出现各种问题。

个人感觉正点处理的很好,意法官方使用的STPMIC1APQR电源管理芯片。

222.png

野火的开发板使用的是RT8096CHGJ5和RT8097CHGB,同样由由PWR_ONRST和PWR_ON控制上电顺序控制上电顺序。如图:

333.png

如果自己编译内核的话需要注意上电顺序修改.dtsi文件。

接下来下载正点原子提供的固件包,这个暂时不动,项目中按照需求修改,其他板子应该会提供相应的BSP,按照技术手册进行修改,修改攻略有空再整理。

444.png

Mqtt使用阿里云的sdk,原因是提供的资料全面,移植难度低,稳定性高,具有SDK定制功能。

https://iot.console.aliyun.com/lk/document/tools

555.png

下载解压后出现文件LinkSDK文件,复制到ubuntu系统。

打开LinkSDK/Makefile文件,其中CC := gcc表示使用gcc编译器,需要改为自己的编译器,比如我使用的是arm-none-linux-gnueabihf-gcc,所以改为

CC := arm-none-linux-gnueabihf-gcc

在LinkSDK/demos中有各种历程,按照自己的项目要求进行修改就可以了,中文备注,修改难度不大。

也可以按照需求修改为单独线程,由

SRC_FILES := $(shell find . -not -path "/demos/.c" -not -path "/nopoll/" -name "*.c")

这句可知,所有/demos/.c文件编译为单独应用,多线程可直接用这个SDK,线程间通信按实际需求写,韦东山教程里面总结的很好。

进程间通信.pdf

之后再sudo环境下编译,复制到开发板中就可以用了。

qt环境的搭建参考正点原子的教程:

【正点原子】STM32MP157出厂系统Qt交叉编译环境搭建V1.1.pdf

在qt中调用mqtt只需要新建一个qt工程,然后直接把LinkSDK添加进去就可以了,需要把原来的main函数改为普通函数,如下:

666.png

在c++中可以直接调用:

777.png

由此所有的数据上发使用类似的方法,由c++直接调用c函数,但是如果使用阿里云的异步调用或者同步调用则出现c不能调用C++的情况,首先json串进行解析:

888.png

然后 AliSend(json_value->valueint);处理解析后数据,AliSend为c++函数,作用是重写中断。

void AliSend(int n){

qDebug() << "AliSend:" <<n<< endl;

// Threshold = n;

if(n==0) {

QApplication::postEvent(out,new QEvent(SetAddEvent));

}

else

{

// out->Threshold = n;

QApplication::postEvent(out,new QEvent(SetCutEvent));

}

}

其中SetAddEvent为中断号,这个按照情况设置:

const QEvent::Type SetAddEvent = (QEvent::Type)9001;

然后再event中进行处理,可以发现按键事件也是在这个函数中进行处理:

d.png

异步命令为{"Set":0}时,阀值+1。

异步命令为{"Set":1}时,阀值-1。

999.png

最后的效果如图:

a.jpg

b.jpg

c.png

【正点原子】STM32MP157出厂系统Qt交叉编译环境搭建V1.1.pdf

777.png
888.png
111.png
333.png
666.png
c.png
555.png
222.png
444.png
999.png
b.jpg
a.jpg
111.png
111.png
111.png
333.png
999.png
888.png
a.jpg
b.jpg

【正点原子】STM32MP157出厂系统Qt交叉编译环境搭建V1.1.pdf

下载

5.31 MB, 下载次数: 1

收藏 评论1 发布时间:2023-2-8 15:54

举报

1个回答
STMCU-管管 回答时间:2023-2-14 16:58:52
c语言和c++混合编程
, r- J/ q+ {: f3 T" S, s& R8 ^编程环境为:Ubuntu 18.04.6 LTS) x6 M8 k/ W$ O2 L
工具环境为:Qt Creator 4.12.2" G; n9 p2 Z7 g2 |
编译工具:gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf  W- y7 f6 K7 W; K2 d. E
下载方法:ssh 5 ]- M* m1 U* Z) v8 C
端口号:225 @; q/ Z# u% S$ K. E+ S" F% f: Q
用户名:root  # M9 ], |8 C  ~% \# P3 I' ~
密码:无
$ r2 L0 u' p; Q' \4 F5 ~( w: M 157_Demo.zip (1.63 MB, 下载次数: 3)

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版