在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

聚豐項(xiàng)目 > 數(shù)字分合自學(xué)系統(tǒng)

數(shù)字分合自學(xué)系統(tǒng)

隨著越來(lái)越多的消費(fèi)類電子產(chǎn)品進(jìn)入孩子們的生活中,如音樂(lè)玩具、故事機(jī)、學(xué)習(xí)機(jī)、智能手表、智能臺(tái)燈等等。本次開(kāi)發(fā)了一款輔助孩子學(xué)習(xí)數(shù)學(xué)的工具?;趪?guó)產(chǎn)AB32VG1單片機(jī)作為主控,采用操作系統(tǒng)采用國(guó)產(chǎn)RT-Thread系統(tǒng); 該系統(tǒng)設(shè)計(jì)可實(shí)現(xiàn)以下功能: 通過(guò)LCD12864作為液晶屏幕進(jìn)行數(shù)據(jù)顯示; 本系統(tǒng)可實(shí)現(xiàn) (1)計(jì)時(shí)功能; (2)LCD屏幕顯示 (3)動(dòng)態(tài)學(xué)習(xí)計(jì)算

march123456 march123456

分享
1 喜歡這個(gè)項(xiàng)目
團(tuán)隊(duì)介紹

march123456 march123456

團(tuán)隊(duì)成員

march123456 研發(fā)

分享
項(xiàng)目簡(jiǎn)介
隨著越來(lái)越多的消費(fèi)類電子產(chǎn)品進(jìn)入孩子們的生活中,如音樂(lè)玩具、故事機(jī)、學(xué)習(xí)機(jī)、智能手表、智能臺(tái)燈等等。本次開(kāi)發(fā)了一款輔助孩子學(xué)習(xí)數(shù)學(xué)的工具。基于國(guó)產(chǎn)AB32VG1單片機(jī)作為主控,采用操作系統(tǒng)采用國(guó)產(chǎn)RT-Thread系統(tǒng); 該系統(tǒng)設(shè)計(jì)可實(shí)現(xiàn)以下功能: 通過(guò)LCD12864作為液晶屏幕進(jìn)行數(shù)據(jù)顯示; 本系統(tǒng)可實(shí)現(xiàn) (1)計(jì)時(shí)功能; (2)LCD屏幕顯示 (3)動(dòng)態(tài)學(xué)習(xí)計(jì)算
硬件說(shuō)明

硬件采用中科藍(lán)訊的AB32VG1單片機(jī)進(jìn)行開(kāi)發(fā);
實(shí)時(shí)操作系統(tǒng)采用國(guó)產(chǎn)RT-Thread系統(tǒng);通過(guò)這個(gè)作品,讓我學(xué)習(xí)到RT-Thread操作系統(tǒng)。
組件部分:硬件GPIO、模擬SPI、RTC等。
 
屏幕采用LCD12864型號(hào):華遠(yuǎn)SPI lcd12864

引腳  :VCC,VSS,LCDCS,LCDRST,LCDA0,LCDSCL,LCDSI,BLA,BLK

未使用到的引腳WSO,WCS,WSCLK,WSI,這是字庫(kù)。


按鍵: 實(shí)現(xiàn)自學(xué)系統(tǒng)的界面操作

image.png

軟件說(shuō)明

image.png

本項(xiàng)目采用了簡(jiǎn)單的單任務(wù)循環(huán)操作,鼓勵(lì)和刺激孩子的自我學(xué)習(xí)能力


/*
 * Copyright (c) 2021-2021, Bluetrum Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2021-11-19     greedyhao    the first version
 */

#include

static rt_sem_t sem = RT_NULL;
static uint8_t send_data[100] = {0};
static uint8_t data[100] = {0};
static uint16_t cnt = 0;

// #define SPI_MASTER
#define TEST_WAY 0

RT_SECTION(".irq.spi.str")
static char str[] = ".";

RT_SECTION(".irq.spi")
static void spi_signal_event(uint32_t event)
{
    switch (event) {
        case 0x1:
        #ifndef SPI_MASTER
            GPIOACLR = BIT(2);
        #endif
            rt_kprintf(str);
            rt_sem_release(sem);
            break;
        case 0x2:
            break;
        case 0x4:
            break;
    }
}

int spi_test(void)
{
    blue_driver_version_t version = RT_NULL;
    version = blue_spi1.get_version();
    rt_kprintf("%d %d\n", version->api, version->drv);

    GPIOAFEN &= ~(BIT(0));
    GPIOADE  |= (BIT(0));
    GPIOADIR &= ~(BIT(0));
    GPIOACLR |= (BIT(0));

#ifdef SPI_MASTER
    rt_kprintf("SPI MASTER\n");
    GPIOAFEN &= ~(BIT(2));
    GPIOADE  |= (BIT(2));
    GPIOADIR |= (BIT(2));
    GPIOAPD  |= (BIT(2));
#else
    rt_kprintf("SPI SLAVE\n");
    GPIOAFEN &= ~(BIT(2));
    GPIOADE  |= (BIT(2));
    GPIOADIR &= ~(BIT(2));
    GPIOACLR |= (BIT(2));
#endif

    sem = rt_sem_create("spi_test", 0, RT_IPC_FLAG_FIFO);
    if (sem == RT_NULL) {
        rt_kprintf("create sem failed!");
    }

    int32_t ret = 0;
    blue_spi1.init(spi_signal_event);
#ifdef SPI_MASTER
    ret |= blue_spi1.control(BLUE_SPI_MODE_MASTER, 40000);
#else
    ret |= blue_spi1.control(BLUE_SPI_MODE_SLAVE, 0);
#endif
    ret |= blue_spi1.control(BLUE_SPI_SET_MAPPING, 4);
    ret |= blue_spi1.control(BLUE_SPI_ENABLE, 0);

    if (ret != 0) {
        rt_kprintf("spi init failed!");
        return -1;
    }

    for (int32_t i = 0; i < 100; i++) {
        send_data[i] = i;
    }

    while (1)
    {
#if TEST_WAY == 0
#ifdef SPI_MASTER
    if (GPIOA & BIT(2)) {
        blue_spi1.send(send_data, 100);
        rt_sem_take(sem, RT_WAITING_FOREVER);
    } else {
        rt_kprintf(".");
        rt_thread_mdelay(500);
    }
#else
    blue_spi1.recv(data, 100);
    GPIOASET = BIT(2);
    rt_sem_take(sem, RT_WAITING_FOREVER);
    for (int i = 0; i < 100; i++)
    {
        rt_kprintf("[%d:%d]", i, data[i]);
    }
    rt_kprintf("\n");

    GPIOA ^= BIT(0);
#endif
#elif TEST_WAY == 1
#ifdef SPI_MASTER
    blue_spi1.send_byte(0x55, 1000);
    int32_t recv = blue_spi1.recv_byte(1000);
    if (recv >= 0) {
        rt_kprintf("%x ", recv & 0xff);
    }
#else
    int32_t recv = blue_spi1.recv_byte(-1);
    blue_spi1.send_byte(0x55, 100);
    if (recv >= 0) {
        rt_kprintf("%x ", recv & 0xff);
    }
#endif
#endif
    }
}
MSH_CMD_EXPORT(spi_test, "spi test");


演示效果

image.png


image.png

評(píng)論區(qū)(0 )
主站蜘蛛池模板: 天天搞夜夜| 亚洲国产精品久久婷婷 | 天堂网2018 | аⅴ资源中文在线天堂 | xx日本69| 四虎影院观看 | 在线免费成人 | 国内精品久久久久影院薰衣草 | 亚洲综合视频一区 | 欧美激情啪啪 | 亚洲综合精品一区二区三区中文 | 欧美一区二区三区不卡免费观看 | 国产乱子伦一区二区三区 | 四虎影永久地址www 四虎影永久在线观看精品 四虎影永久在线观看网址 四虎影院.com | 亚洲理论在线观看 | 包你爽综合网 | 四虎精品免费永久在线 | 在线免费观看你懂的 | 欧美一级视频免费 | 天天操天天干天天干 | 国产亚洲精品仙踪林在线播放 | 午夜国产福利 | 午夜湿 | 亚洲va欧美va国产综合久久 | 夜夜摸夜夜爽 | 四虎影院观看视频 | 一本到卡二卡三卡免费高 | 婷婷国产在线 | 中文字幕不卡在线播放 | 国产精品免费久久久免费 | 亚洲第一永久在线观看 | 伊人网网| 美女艹逼视频 | 久久系列 | 操久久久| 免费观看四虎精品成人 | 天堂va欧美ⅴa亚洲va一国产 | 色吧五月天 | 久操操操| 亚洲国产精品久久久久婷婷软件 | 男人天堂色男人 |