小熊派华为物联网操作系统LiteOS裸机驱动移植02LCD驱动移植及使用

1. LCD裸机驱动

小熊派开发板使用的LCD屏幕为1.3寸的TFT彩屏,色彩深度16bit,分辨率240*240,使用 SPI 接口与 MCU 之间通信。

2. 移植LCD裸机驱动到LiteOS

复制裸机驱动文件到LiteOS工程

LCD的底层是使用SPI驱动的,那么除了 STM32CubeMX 生成的spi.hspi.c文件,还需要自己在此基础上手写LCD屏幕的驱动文件。

在复制文件的时候,按照上一篇文章中所说的,复制spi.h到Inc 文件夹,复制spi.c到 Src 文件夹,再复制自己编写的驱动文件lcd.clcd.h以及字库文件font.h到 Hardware文件夹。

IoT-Studio中提供的默认工程已经复制好了这些文件,无需再次添加,如图:

LCD驱动文件

添加驱动文件路径

因为 LiteOS 的整个项目工程使用 make 构建,所以复制驱动文件之后,需要添加驱动文件的路径到 makefile 中,加入编译。

project.mk文件指明了工程中所有文件的路径:

project.mk文件

在该文件中:

  • C文件路径
    • HARDWARE_SRC:对应Hardware文件夹下的Src文件夹
    • USER_SRC:对应Src文件夹
  • 头文件路径
    • HARDWARE_INC:对应Hardware文件夹下的Inc文件夹
    • USER_INC:对应Inc文件夹

如下,LCD驱动的底层SPI接口代码spi.c路径添加到USER_SRC中:

SPI驱动文件路径

LCD驱动的底层SPI接口代码spi.h路径添加到USER_INC中:

SPI驱动头文件路径

基于SPI驱动的LCD屏幕驱动文件lcd.c添加到HARDWARE_SRC中:

LCD屏幕驱动文件路径

基于SPI驱动的LCD屏幕驱动头文件lcd.h和字库文件font.h添加到 HARDWARE_INC 中:

LCD屏幕驱动头文件路径

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是将小熊wifi8266连接到华为云的示例代码: ```c++ #include <ESP8266WiFi.h> #include <PubSubClient.h> // 替换为自己的WiFi信息和华为云信息 const char* ssid = "your_SSID"; // WiFi SSID const char* password = "your_PASSWORD"; // WiFi password const char* mqttServer = "your_MQTT_SERVER"; // 华为云MQTT服务器地址 const int mqttPort = 1883; // 华为云MQTT服务器端口 const char* mqttUsername = "your_MQTT_USERNAME"; // 华为云MQTT用户名 const char* mqttPassword = "your_MQTT_PASSWORD"; // 华为云MQTT密码 const char* deviceId = "your_DEVICE_ID"; // 设备ID const char* topic = "your_TOPIC"; // 主题名称 WiFiClient wifiClient; PubSubClient mqttClient(wifiClient); void setup() { Serial.begin(9600); delay(10); // 连接WiFi Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // 连接华为云MQTT服务器 mqttClient.setServer(mqttServer, mqttPort); while (!mqttClient.connected()) { Serial.print("Connecting to MQTT server..."); if (mqttClient.connect(deviceId, mqttUsername, mqttPassword)) { Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(mqttClient.state()); Serial.println(" try again in 5 seconds"); delay(5000); } } } void loop() { // 发布消息 mqttClient.publish(topic, "Hello from ESP8266"); delay(5000); } ``` 在实际使用时,需要将代码中的 `your_SSID`、`your_PASSWORD`、`your_MQTT_SERVER`、`your_MQTT_USERNAME`、`your_MQTT_PASSWORD`、`your_DEVICE_ID`、`your_TOPIC` 替换为自己的实际信息。同时,需要将 `PubSubClient.h` 和 `ESP8266WiFi.h` 这两个库添加到项目中。 该示例代码中,通过 `WiFi.begin` 函数连接WiFi,通过 `mqttClient.connect` 函数连接华为云的MQTT服务器。在 `loop` 函数中,通过 `mqttClient.publish` 函数发布消息到指定的主题。您可以根据自己的需求修改代码来实现更多功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值