RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

零基礎(chǔ)開發(fā)小安派-Eyes-S1外設(shè)篇——UART

AIoT行業(yè)洞察 ? 來源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2024-11-13 14:06 ? 次閱讀

AiPi-Eyes-S1是安信可開源團(tuán)隊(duì)專門為Ai-M61-32S設(shè)計的一款開發(fā)板,支持WiFi6、BLE5.3。所搭載的Ai-M61-32S 模組具有豐富的外設(shè)接口,具體包括 DVP、MJPEG、Dispaly、AudioCodec、USB2.0、SDU、以太網(wǎng) (EMAC)、SD/MMC(SDH)、SPI、UART、I2C、I2S、PWM、GPDAC、GPADC、ACOMP 和 GPIO 等。

AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。

從零開始學(xué)習(xí)小安派:

1、零基礎(chǔ)開發(fā)小安派-Eyes-S1【入門篇】——初識小安派-Eyes-S1

2、零基礎(chǔ)開發(fā)小安派-Eyes-S1【入門篇】——安裝VMware與Ubuntu

3、入門篇:零基礎(chǔ)開發(fā)小安派-Eyes-S1——新建工程并燒錄調(diào)試

4、零基礎(chǔ)開發(fā)小安派-Eyes-S1入門篇——Win下SSH連接Linux

5、零基礎(chǔ)開發(fā)小安派-Eyes-S1【入門篇】——Samba共享文件夾

6、零基礎(chǔ)開發(fā)小安派-Eyes-S1【入門篇】——工程文件架構(gòu)

7、零基礎(chǔ)開發(fā)小安派-Eyes-S1【外設(shè)篇】——GPIO 輸入輸出

8、零基礎(chǔ)開發(fā)小安派-Eyes-S1【外設(shè)篇】——GPIO中斷編程

9、零基礎(chǔ)開發(fā)小安派-Eyes-S1【外設(shè)篇】——PWM

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter, 通常稱為 UART) 是一種異步收發(fā)傳輸器,提供了與外部設(shè)備進(jìn)行全雙工數(shù)據(jù)交換的靈活方式。BL616/BL618 共有 2 組 UART,配合 DMA 使用,可以實(shí)現(xiàn)高效的數(shù)據(jù)通信。

01、了解小安派-Eyes-S1 的 UART

小安派的 UART 是全雙工異步通訊,具有豐富的中斷控制,DMA 傳輸、485 協(xié)議、10Mbps 波特率、LIN 總線協(xié)議等等特征。其有三個時鐘源,分別是 XCK、160Mhz CLK 和 BCLK。UART 的控制器分為兩個功能模塊:發(fā)送器和接收器。

數(shù)據(jù)位長度可選 5 / 6 / 7 / 8 比特

#define UART_DATA_BITS_5 0
#define UART_DATA_BITS_6 1
#define UART_DATA_BITS_7 2
#define UART_DATA_BITS_8 3
#define UART_DATA_BITS_9 4

停止位長度可選 0.5 / 1 / 1.5 / 2 比特

#define UART_STOP_BITS_0_5 0
#define UART_STOP_BITS_1 1
#define UART_STOP_BITS_1_5 2
#define UART_STOP_BITS_2 3

支持 奇 / 偶 / 無 / 校驗(yàn)比特

#define UART_PARITY_NONE 0
#define UART_PARITY_ODD 1
#define UART_PARITY_EVEN 2
#define UART_PARITY_MARK 3
#define UART_PARITY_SPACE 4

可配置 MSB / LSB 優(yōu)先輸出

#define UART_LSB_FIRST 0
#define UART_MSB_FIRST 1

1.struct bflb_uart_config_s

說明:uart 初始化配置結(jié)構(gòu)體

struct bflb_uart_config_s {
uint32_t baudrate;
uint8_t direction;
uint8_t data_bits;
uint8_t stop_bits;
uint8_t parity;
uint8_t bit_order;
uint8_t flow_ctrl;
uint8_t tx_fifo_threshold;
uint8_t rx_fifo_threshold;
};

wKgZomc0QcCAfxiLAAB94pXVNZI678.jpg

2.bflb_uart_init

說明: 初始化 uart。使用之前需要開啟 uart ip 時鐘、設(shè)置 uart 時鐘源和分頻值、選擇 gpio 為 uart 中的一個功能。

void bflb_uart_init(struct bflb_device_s *dev, const struct bflb_uart_config_s *config);

wKgaomc0QcGAf0ihAAAoef7H9xw401.jpg

3.bflb_uart_deinit

說明: 反初始化 uart。

void bflb_uart_deinit(struct bflb_device_s *dev);

wKgZomc0QceAERqeAAAOOY7gFpQ170.jpg

4.bflb_uart_link_txdma

說明: uart tx dma 使能開關(guān)。

void bflb_uart_link_txdma(struct bflb_device_s *dev, bool enable);

wKgaomc0QcmAV84GAAAoWa_hC30564.jpg

5.bflb_uart_link_rxdma

說明: uart rx dma 使能開關(guān)。

void bflb_uart_link_rxdma(struct bflb_device_s *dev, bool enable);

wKgZomc0QcmAWLfjAAApVVe2gKU831.jpg

6.bflb_uart_putchar

說明: 通過 uart 阻塞式發(fā)送一個字符。

int bflb_uart_putchar(struct bflb_device_s *dev, int ch);

wKgaomc0QcuAOxbjAAAm981f0aE454.jpg

7.bflb_uart_getchar

說明: 通過 uart 異步接收一個字符。

int bflb_uart_getchar(struct bflb_device_s *dev);

wKgaomc0QcyAVsStAAAwCvkxag4953.jpg

8.bflb_uart_put

說明:通過 uart 輪詢發(fā)送數(shù)據(jù)。

int bflb_uart_put(struct bflb_device_s *dev, uint8_t *data, uint32_t len);

wKgZomc0QcyAFOwLAAAwrnVGCRk401.jpg

9.bflb_uart_put_block

說明:通過 uart 阻塞式發(fā)送數(shù)據(jù)。

int bflb_uart_put_block(struct bflb_device_s *dev, uint8_t *data, uint32_t len);

wKgaomc0Qc2ABfMxAAAv0Njjxlo821.jpg

10.bflb_uart_get

說明:通過 uart 異步阻塞接收數(shù)據(jù)。

int bflb_uart_get(struct bflb_device_s *dev, uint8_t *data, uint32_t len);

wKgZomc0Qc2ACuyvAAAxXNofRaI751.jpg

11.bflb_uart_txready

說明: 查詢 uart tx fifo 是否準(zhǔn)備就緒,準(zhǔn)備好才可以填充字符
bool bflb_uart_txready(struct bflb_device_s *dev);

wKgaomc0Qc-Aem_jAAApfH1Z3yE017.jpg

12.bflb_uart_txempty

說明: 查詢 uart tx fifo 是否為空。

bool bflb_uart_txempty(struct bflb_device_s *dev);

wKgZomc0QdCALJ3QAAAtpnW0_g8944.jpg

13.bflb_uart_rxavailable

說明: 查詢 uart rx 是否有數(shù)據(jù)。

bool bflb_uart_rxavailable(struct bflb_device_s *dev);

wKgaomc0QdCAI2KIAAAs0jh3DM8441.jpg

14.bflb_uart_txint_mask

說明: uart tx fifo 閾值中斷屏蔽開關(guān),開啟后超過設(shè)定閾值則觸發(fā)中斷。

void bflb_uart_txint_mask(struct bflb_device_s *dev, bool mask);

wKgZomc0QdGAQNeXAAAprtGP-u0925.jpg

15.bflb_uart_rxint_mask

說明: uart rx fifo 閾值中斷和超時屏蔽開關(guān),開啟后超過設(shè)定閾值則或者超時則觸發(fā)中斷。

void bflb_uart_rxint_mask(struct bflb_device_s *dev, bool mask);

wKgaomc0QdGARAQOAAAplwUeatU298.jpg

16.bflb_uart_errint_mask

說明:uart 錯誤中斷屏蔽開關(guān)。

void bflb_uart_errint_mask(struct bflb_device_s *dev, bool mask);

wKgZomc0QdKADV8bAAAqNorGlYo915.jpg

17.bflb_uart_get_intstatus

說明: 獲取 uart 中斷標(biāo)志。

uint32_t bflb_uart_get_intstatus(struct bflb_device_s *dev);

wKgaomc0QdKAeg5YAAAoVwTfXw8590.jpg

返回的中斷標(biāo)志有以下選項(xiàng):

#define UART_INTSTS_TX_END (1 << 0)
#define UART_INTSTS_RX_END (1 << 1)
#define UART_INTSTS_TX_FIFO (1 << 2)
#define UART_INTSTS_RX_FIFO (1 << 3)
#define UART_INTSTS_RTO (1 << 4)
#define UART_INTSTS_PCE (1 << 5)
#define UART_INTSTS_TX_FER (1 << 6)
#define UART_INTSTS_RX_FER (1 << 7)
#if !defined(BL602)
#define UART_INTSTS_RX_LSE (1 << 8)
#endif
#if !defined(BL602) && !defined(BL702)
#define UART_INTSTS_RX_BCR (1 << 9)
#define UART_INTSTS_RX_ADS (1 << 10)
#define UART_INTSTS_RX_AD5 (1 << 11)
#endif

18.bflb_uart_int_clear

說明: 清除 uart 中斷標(biāo)志。

void bflb_uart_int_clear(struct bflb_device_s *dev, uint32_t int_clear);

wKgZomc0QdOAVdQaAAAprXExdzw948.jpg

清除值可填入以下參數(shù)

#define UART_INTCLR_TX_END (1 << 0)
#define UART_INTCLR_RX_END (1 << 1)
#define UART_INTCLR_RTO (1 << 4)
#define UART_INTCLR_PCE (1 << 5)
#if !defined(BL602)
#define UART_INTCLR_RX_LSE (1 << 8)
#endif
#if !defined(BL602) && !defined(BL702)
#define UART_INTCLR_RX_BCR (1 << 9)
#define UART_INTCLR_RX_ADS (1 << 10)
#define UART_INTCLR_RX_AD5 (1 << 11)
#endif

19.bflb_uart_feature_control

說明:uart 其他特性相關(guān)控制,一般不常用。

int bflb_uart_feature_control(struct bflb_device_s *dev, int cmd, size_t arg);

wKgaomc0QdOAKOJHAAA87_-qWs0666.jpg

cmd 可以填入以下參數(shù):

#define UART_CMD_SET_BAUD_RATE (0x01)
#define UART_CMD_SET_DATA_BITS (0x02)
#define UART_CMD_SET_STOP_BITS (0x03)
#define UART_CMD_SET_PARITY_BITS (0x04)
#define UART_CMD_CLR_TX_FIFO (0x05)
#define UART_CMD_CLR_RX_FIFO (0x06)
#define UART_CMD_SET_RTO_VALUE (0x07)
#define UART_CMD_SET_RTS_VALUE (0x08)
#define UART_CMD_GET_TX_FIFO_CNT (0x09)
#define UART_CMD_GET_RX_FIFO_CNT (0x0a)
#define UART_CMD_SET_AUTO_BAUD (0x0b)
#define UART_CMD_GET_AUTO_BAUD (0x0c)
#define UART_CMD_SET_BREAK_VALUE (0x0d)
#define UART_CMD_SET_TX_LIN_VALUE (0x0e)
#define UART_CMD_SET_RX_LIN_VALUE (0x0f)
#define UART_CMD_SET_TX_RX_EN (0x10)
#define UART_CMD_SET_TX_RS485_EN (0x11)
#define UART_CMD_SET_TX_RS485_POLARITY (0x12)
#define UART_CMD_SET_ABR_ALLOWABLE_ERROR (0x13)
#define UART_CMD_SET_SW_RTS_CONTROL (0x14)
#define UART_CMD_IR_CONFIG (0x15)
#define UART_CMD_SET_TX_FREERUN (0x16)
#define UART_CMD_SET_TX_END_INTERRUPT (0x17)
#define UART_CMD_SET_RX_END_INTERRUPT (0x18)
#define UART_CMD_SET_TX_TRANSFER_LEN (0x19)
#define UART_CMD_SET_RX_TRANSFER_LEN (0x20)
#define UART_CMD_SET_TX_EN (0x21)
#define UART_CMD_SET_BCR_END_INTERRUPT (0x22)
#define UART_CMD_GET_BCR_COUNT (0x23)

02、示例:UART 發(fā)送,中斷接收

小安派-Eyes-S1 具有兩組串口,UART0 已經(jīng)被映射為 prtinf 函數(shù),也就是 LOG 函數(shù),我們還剩下一組 UART1 可使用,而且小安派的 GPIO 可以任意配置為 UART 的 TX 或 RX,這里使用 GPIO_1 和 GPIO_0 配置為 UART1。

實(shí)現(xiàn)的效果是,在主函數(shù)里輪詢發(fā)送數(shù)據(jù),當(dāng) UART1 接收到其他數(shù)據(jù)時,觸發(fā)接收中斷并使用 UART0 發(fā)送,也就是 LOG 函數(shù)發(fā)送出來,實(shí)現(xiàn)透傳的效果。

Main

//頭文件
#include "bflb_mtimer.h"
#include "bflb_uart.h"
#include "bflb_gpio.h"
#include "board.h"
//設(shè)置名為uart1的外設(shè)句柄
struct bflb_device_s *uart1;
//定義需要輪詢發(fā)送的數(shù)據(jù)
static uint8_t uart_txbuf[4] = { 0,1,2,3 };
void uart_isr(int irq, void *arg);
//初始化串口配置,如波特率,數(shù)據(jù)位和停止位
//tx_fifo_threshold 和 rx_fifo_threshold 參數(shù)設(shè)置表示為fifo中斷的觸發(fā)閾值
static void uart_init(void)
{
struct bflb_device_s* gpio;
struct bflb_uart_config_s cfg = {
.baudrate = 115200,
.data_bits = UART_DATA_BITS_8,
.stop_bits = UART_STOP_BITS_1,
.parity = UART_PARITY_NONE,
.flow_ctrl = 0,
.tx_fifo_threshold = 4,
.rx_fifo_threshold = 4,
};
gpio = bflb_device_get_by_name("gpio");
uart1 = bflb_device_get_by_name("uart1");
//將GPIO_1和GPIO_0設(shè)置為TX和RX
bflb_gpio_uart_init(gpio, GPIO_PIN_1, GPIO_UART_FUNC_UART1_TX);
bflb_gpio_uart_init(gpio, GPIO_PIN_0, GPIO_UART_FUNC_UART1_RX);
bflb_uart_init(uart1, &cfg);
bflb_uart_txint_mask(uart1, true);
bflb_uart_rxint_mask(uart1, false);
bflb_irq_attach(uart1->irq_num, uart_isr, NULL);
bflb_irq_enable(uart1->irq_num);
}
//中斷服務(wù)函數(shù),觸發(fā)中斷后會進(jìn)入該函數(shù)
void uart_isr(int irq, void *arg)
{
uint32_t intstatus = bflb_uart_get_intstatus(uart1);
//這里注釋了fifo管道的RX中斷觸發(fā),fifo的觸發(fā)方式也就是上面設(shè)置的字節(jié)數(shù)4,也就是要接收4個字節(jié)以上數(shù)據(jù)才會觸發(fā)fifo中斷
// if (intstatus & UART_INTSTS_RX_FIFO) {
// printf("rx fiforn");
// while (bflb_uart_rxavailable(uart1)) {
// printf("0x%02xrn", bflb_uart_getchar(uart1));
// }
// }
//接收超時中斷,當(dāng)一段時間內(nèi)數(shù)據(jù)沒有接收后便會停止,在觸發(fā)中斷后,輪詢使用prtintf發(fā)送uart1接收到的字符,停止接收后清空中斷標(biāo)志等待下一次發(fā)送
if (intstatus & UART_INTSTS_RTO) {
printf("rtorn");
while (bflb_uart_rxavailable(uart1)) {
printf("0x%02xrn", bflb_uart_getchar(uart1));
}
bflb_uart_int_clear(uart1, UART_INTCLR_RTO);
}
}
int main(void)
{
board_init();
uart_init();

//主函數(shù)每兩秒輪詢一次發(fā)送 uart_txbuf 數(shù)據(jù)

while (1) {
bflb_mtimer_delay_ms(2000);
bflb_uart_put(uart1,uart_txbuf,4);
}
}

實(shí)現(xiàn)效果

uart1 每兩秒發(fā)送一次 00 01 02 03 ,左邊框中可以看見持續(xù)接收到數(shù)據(jù),當(dāng) uart1 接收到其他數(shù)據(jù)時如 AA BB CC DD EE FF 或 11 22 33 ,可以在右邊的 uart0 框中看見接收到的數(shù)據(jù),可以看見觸發(fā)的中斷方式為 RTO 超時??梢試L試 fifo 的方式看看兩種方式的差異性,在后續(xù)處理串口協(xié)議時,面對不同的協(xié)議采用不同的方式來應(yīng)對。

wKgZomc0QdSAO6FSAACMqMHyFtQ724.jpg


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7936

    瀏覽量

    264457
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1235

    瀏覽量

    101354
收藏 人收藏

    評論

    相關(guān)推薦

    零基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)——I2S

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學(xué)習(xí)小安
    的頭像 發(fā)表于 12-13 18:02 ?910次閱讀
    <b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b><b class='flag-5'>外設(shè)</b><b class='flag-5'>篇</b>——I2<b class='flag-5'>S</b>

    電子DIY作品 小安R1做個86盒中控

    前言 筆者之前看小安的開源資料, 就對 R1 這個板子情有獨(dú)鐘 這就是為 86 盒而生啊 剛好安信可社區(qū)一直有積分兌換活動 (https://bbs.ai-thinker.com/) 這次就用
    的頭像 發(fā)表于 12-05 14:34 ?149次閱讀
    電子DIY作品 <b class='flag-5'>小安</b><b class='flag-5'>派</b>R<b class='flag-5'>1</b>做個86盒中控

    零基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)】——FLASH

    。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學(xué)習(xí)小安
    的頭像 發(fā)表于 12-05 14:31 ?160次閱讀
    <b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【<b class='flag-5'>外設(shè)</b><b class='flag-5'>篇</b>】——FLASH

    零基礎(chǔ)開發(fā)小安-Eyes-S1 外設(shè) ——I2C

    。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學(xué)習(xí)小安
    的頭像 發(fā)表于 11-27 16:39 ?200次閱讀
    <b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b> <b class='flag-5'>外設(shè)</b><b class='flag-5'>篇</b> ——I2C

    小安 AiPi-Eyes-R2 玩植物大戰(zhàn)僵尸

    - Eyes-R1 帶外置 ES8388 音頻芯片,支持兩路音頻輸入輸出。小安 - Eyes-R2 采用內(nèi)置 CodeC,支持單路音頻輸入輸出。 如果是編譯帶 8388
    的頭像 發(fā)表于 11-06 16:10 ?206次閱讀
    用<b class='flag-5'>小安</b><b class='flag-5'>派</b> AiPi-<b class='flag-5'>Eyes</b>-R2 玩植物大戰(zhàn)僵尸

    零基礎(chǔ)開發(fā)小安-Eyes-S1【入門】——工程文件架構(gòu)

    -Eyes-S1【入門】——初識小安-Eyes-S12、零基礎(chǔ)
    的頭像 發(fā)表于 11-06 16:10 ?143次閱讀
    <b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【入門<b class='flag-5'>篇</b>】——工程文件架構(gòu)

    零基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)】——PWM

    】——工程文件架構(gòu)7、零基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)
    的頭像 發(fā)表于 11-06 16:10 ?141次閱讀
    <b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【<b class='flag-5'>外設(shè)</b><b class='flag-5'>篇</b>】——PWM

    零基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)——GPIO中斷編程

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 產(chǎn)品資料:https://docs.ai-thinker.com/eyes
    的頭像 發(fā)表于 10-29 14:56 ?743次閱讀
    <b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b><b class='flag-5'>外設(shè)</b><b class='flag-5'>篇</b>——GPIO中斷編程

    零基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)——GPIO 輸入輸出

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入USB攝像頭。 從開始學(xué)習(xí)小安
    的頭像 發(fā)表于 10-25 13:50 ?1013次閱讀
    <b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b><b class='flag-5'>外設(shè)</b><b class='flag-5'>篇</b>——GPIO 輸入輸出

    開發(fā)教程 零基礎(chǔ)開發(fā)小安-Eyes-S1入門——Win下SSH連接Linux

    AiPi-Eyes-S1 是安信可開源團(tuán)隊(duì)專門為Ai-M61-32S設(shè)計的一款開發(fā)板,支持WiFi6、BLE5.3。所搭載的Ai-M61-32S 模組具有豐富的
    的頭像 發(fā)表于 09-24 14:31 ?289次閱讀
    <b class='flag-5'>開發(fā)</b>教程 <b class='flag-5'>零基</b>礎(chǔ)<b class='flag-5'>開發(fā)</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>入門<b class='flag-5'>篇</b>——Win下SSH連接Linux

    功德+1,用小安-Eyes-S1做一個電子木魚

    2024積德累功,心想事成!接下來 看看如何用小安-Eyes-S1做一個電子木魚 。 01、GUI-Guider 頁面設(shè)計 先新建一個工程。 直接進(jìn)入 UI 設(shè)計界面,這里用到了兩個組件, 一個是圖片按鈕,一個是文本框 。 先
    的頭像 發(fā)表于 01-16 14:33 ?737次閱讀
    功德+<b class='flag-5'>1</b>,用<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>做一個電子木魚

    如何用小安-Eyes-S1做一個電子木魚?

    2024年的第一教程來了,本篇學(xué)習(xí)如何添加LVGL事件,并制作完成一個電子木魚(小美苦苦哀求,我略微出手而已)。祝大家2024積德累功,心想事成!接下來看看如何用小安-Eyes-S1
    的頭像 發(fā)表于 01-13 15:18 ?1018次閱讀
    如何用<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>做一個電子木魚?

    【核桃1B 開發(fā)板試用體驗(yàn)】+部分外設(shè)功能測試

    核桃開發(fā)板配置了許多的接口及相應(yīng)的處理,直接使用它們就可獲得相應(yīng)的用途。 音頻接口 核桃板載了一個3.5mm的音頻輸出口,通過該接口可提供一定的輸出功率,能驅(qū)動耳機(jī)或帶功放的揚(yáng)聲器。 圖
    發(fā)表于 01-04 10:30

    利用星閃BS25開發(fā)板NL001測試官方sdk中的外設(shè)程序uart

    本文利用星閃BS25開發(fā)板NL001測試一下官方sdk中的外設(shè)程序uart,以便熟悉外設(shè)的基本操作。
    的頭像 發(fā)表于 01-02 11:30 ?2839次閱讀
    利用星閃BS25<b class='flag-5'>開發(fā)</b>板NL001測試官方sdk中的<b class='flag-5'>外設(shè)</b>程序<b class='flag-5'>uart</b>

    用安信可的小安小安,DIY個簡單的CC表

    本作品由安信可社區(qū)用戶 bzhou830 制作 原貼地址:【DIY電子作品】電壓與電流CC表 基于小安AiPi-Eye-S1 匯總 https://bbs.ai-thinker.com
    的頭像 發(fā)表于 12-25 17:07 ?687次閱讀
    用安信可的<b class='flag-5'>小安</b><b class='flag-5'>派</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>,DIY個簡單的CC表
    RM新时代网站-首页