mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-19 09:25:54 +08:00
添加智能灯固件代码
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
// Copyright 2020-2021 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
#include <stdio.h>
|
||||
#include "unity.h"
|
||||
#include "unity_config.h"
|
||||
#include "spi_bus.h"
|
||||
#include "esp_system.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
|
||||
#define SPI_SCK_IO 18
|
||||
#define SPI_MOSI_IO 23
|
||||
#define SPI_MISO_IO 19
|
||||
|
||||
void spi_bus_init_deinit_test()
|
||||
{
|
||||
spi_bus_handle_t bus_handle = NULL;
|
||||
spi_config_t bus_conf = {
|
||||
.miso_io_num = SPI_MISO_IO,
|
||||
.mosi_io_num = SPI_MOSI_IO,
|
||||
.sclk_io_num = SPI_SCK_IO,
|
||||
};
|
||||
bus_handle = spi_bus_create(SPI2_HOST, &bus_conf);
|
||||
TEST_ASSERT(bus_handle != NULL);
|
||||
TEST_ASSERT(ESP_OK == spi_bus_delete(&bus_handle));
|
||||
TEST_ASSERT(bus_handle == NULL);
|
||||
bus_handle = spi_bus_create(SPI3_HOST, &bus_conf);
|
||||
TEST_ASSERT(bus_handle != NULL);
|
||||
TEST_ASSERT(ESP_OK == spi_bus_delete(&bus_handle));
|
||||
TEST_ASSERT(bus_handle == NULL);
|
||||
}
|
||||
|
||||
/* connect mosi with miso for transfer test */
|
||||
void spi_bus_transfer_test()
|
||||
{
|
||||
spi_bus_handle_t bus_handle = NULL;
|
||||
spi_config_t bus_conf = {
|
||||
.miso_io_num = SPI_MISO_IO,
|
||||
.mosi_io_num = SPI_MOSI_IO,
|
||||
.sclk_io_num = SPI_SCK_IO,
|
||||
};
|
||||
|
||||
spi_device_config_t device_conf = {
|
||||
.cs_io_num = NULL_SPI_CS_PIN,
|
||||
.mode = 0,
|
||||
.clock_speed_hz = 20 * 1000 * 1000,
|
||||
};
|
||||
|
||||
bus_handle = spi_bus_create(SPI2_HOST, &bus_conf);
|
||||
TEST_ASSERT(bus_handle != NULL);
|
||||
spi_bus_device_handle_t device_handle = NULL;
|
||||
device_handle = spi_bus_device_create(bus_handle, &device_conf);
|
||||
TEST_ASSERT(device_handle != NULL);
|
||||
|
||||
printf("************byte transfer test***************\n");
|
||||
for (uint8_t i = 0; i < 200; i++) {
|
||||
uint8_t in = 0;
|
||||
TEST_ASSERT(ESP_OK == spi_bus_transfer_byte(device_handle, i, &in));
|
||||
TEST_ASSERT_EQUAL_UINT8(i, in);
|
||||
printf("in=%u\n", in);
|
||||
}
|
||||
|
||||
vTaskDelay(2);
|
||||
printf("************bytes transfer test***************\n");
|
||||
uint8_t data[200] = {0};
|
||||
uint8_t data_in[200] = {0};
|
||||
for (uint8_t i = 0; i < 200; i++) {
|
||||
data[i] = i;
|
||||
}
|
||||
TEST_ASSERT(ESP_OK == spi_bus_transfer_bytes(device_handle, data, data_in, 200));
|
||||
for (uint8_t i = 0; i < 200; i++) {
|
||||
printf("%u ", data_in[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
vTaskDelay(2);
|
||||
printf("************reg16 transfer test***************\n");
|
||||
for (uint16_t i = (0xffff - 200); i < 0xffff; i++) {
|
||||
uint16_t in = 0;
|
||||
TEST_ASSERT(ESP_OK == spi_bus_transfer_reg16(device_handle, i, &in));
|
||||
TEST_ASSERT_EQUAL_UINT16(i, in);
|
||||
printf("in=%u\n", in);
|
||||
}
|
||||
|
||||
vTaskDelay(2);
|
||||
printf("************reg32 transfer test***************\n");
|
||||
for (uint32_t i = (0xffffffff - 200); i < 0xffffffff; i++) {
|
||||
uint32_t in = 0;
|
||||
TEST_ASSERT(ESP_OK == spi_bus_transfer_reg32(device_handle, i, &in));
|
||||
TEST_ASSERT_EQUAL_UINT32(i, in);
|
||||
printf("in=%x\n", in);
|
||||
}
|
||||
|
||||
TEST_ASSERT(ESP_OK == spi_bus_device_delete(&device_handle));
|
||||
TEST_ASSERT(device_handle == NULL);
|
||||
TEST_ASSERT(ESP_OK == spi_bus_delete(&bus_handle));
|
||||
TEST_ASSERT(bus_handle == NULL);
|
||||
}
|
||||
|
||||
TEST_CASE("spi bus init-deinit test", "[bus]spi_bus]")
|
||||
{
|
||||
spi_bus_init_deinit_test();
|
||||
}
|
||||
|
||||
TEST_CASE("spi bus transfer test", "[bus][spi_bus]")
|
||||
{
|
||||
spi_bus_transfer_test();
|
||||
}
|
||||
Reference in New Issue
Block a user