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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用星閃BS25開發板NL001測試官方sdk中的外設程序uart

藍牙 ? 來源:藍牙 ? 2024-01-02 11:30 ? 次閱讀

內容簡介

本文利用星閃BS25開發板NL001測試一下官方sdk中的外設程序uart,以便熟悉外設的基本操作。

測試工具

Operating system:Windows 10 home

deveco-device-tool-all-in-one:1.1.1_beta2

DevTools_CFBB:1.0.5

Compiler:CFBB IDE 1.0.3

Sdk:20230928

BurnTool:5.0.34

DebugKits_CFBB:3.0.98

Python:3.8.10

VSCode:1.66.2

Here we go

首先用“python build.py standard-bs25-app-evb menuconfig”配置工程為uart:

536352bc-a63a-11ee-8b88-92fbcf53809c.png

這里配置為interrupt方式。

編譯后燒錄到板子上測試,默認程序就能跑起來。首先保持燒錄口(AP15和AP14)連接到電腦的UART口,打開串口調試助手查看log,上電后如下:

53798ae6-a63a-11ee-8b88-92fbcf53809c.png

嘗試在串口發送123后返回數據:

53888d70-a63a-11ee-8b88-92fbcf53809c.png

明顯默認程序運行正常,并且收到的數據也正常,默認程序是通過A_P15(TXD)、A_P14(RXD)與串口調試助手連接的,參數為115200、8、1、N。

想要自己整一下代碼,把AP12(tx)、AP13(rx)兩個引腳注冊到UART1上面,然后uart1收到數據后再重新在uart1上發送出去,uart0(AP15 TX, AP14 RX)繼續保留打印系統log的功能(該部分在os其他地方初始化了,并不是在uart_demo.c中初始化的)。

整了一下代碼:

53a1759c-a63a-11ee-8b88-92fbcf53809c.png

53b3f76c-a63a-11ee-8b88-92fbcf53809c.png

53cc4e0c-a63a-11ee-8b88-92fbcf53809c.png

53dce406-a63a-11ee-8b88-92fbcf53809c.png

#include "pinctrl.h"

#include "uart.h"

#include "watchdog.h"

#include "osal_debug.h"

#include "cmsis_os2.h"

#include "app_init.h"

#define UART_BAUDRATE115200

#define UART_DATA_BITS3 //3實際上是對應了UART_DATA_BIT_8,見uart_data_bit_t

#define UART_STOP_BITS1

#define UART_PARITY_BIT0 //UART_PARITY_NONE,見uart_parity_t

#define UART_TRANSFER_SIZE16

#define CONFIG_UART_INT_WAIT_MS5

#define UART_TASK_STACK_SIZE0x1000

#define UART_TASK_DURATION_MS500

#define UART_TASK_PRIO(osPriority_t)(17)

static uint8_t g_app_uart_rx_buff[UART_TRANSFER_SIZE] = { 0 };

static uint8_t g_app_uart_int_rx_flag = 0;

static uint8_t g_app_uart_int_rx_len = 0;

static uart_buffer_config_t g_app_uart_buffer_config = {

.rx_buffer =g_app_uart_rx_buff,

.rx_buffer_size =UART_TRANSFER_SIZE

};

static void app_uart_init_pin(void)

{

uapi_pin_set_mode(S_AGPIO12,6);

uapi_pin_set_mode(S_AGPIO13,6);

}

static void app_uart_init_config(void)

{

uart_attr_t attr = {

.baud_rate = UART_BAUDRATE,//115200

.data_bits =UART_DATA_BITS, //8

.stop_bits =UART_STOP_BITS, //1

.parity =UART_PARITY_BIT //UART_PARITY_NONE

};

uart_pin_config_t pin_config ={

.tx_pin =S_AGPIO12,//S_MGPIO0,

.rx_pin =S_AGPIO13,//S_MGPIO1,

.cts_pin = PIN_NONE,

.rts_pin = PIN_NONE

};

uapi_uart_init(UART_BUS_1,&pin_config, &attr, NULL, &g_app_uart_buffer_config);

}

static void app_uart_read_int_handler(const void *buffer, uint16_tlength, bool error)

{

unused(error);

if (buffer == NULL || length ==0)

{

osal_printk("uart%dint mode transfer illegal data! ", UART_BUS_1);

return;

}

uint8_t *buff = (uint8_t*)buffer;

if(memcpy_s(g_app_uart_rx_buff, length, buff, length) != EOK)

{

osal_printk("uart%dint mode data copy fail! ", UART_BUS_1);

return;

}

g_app_uart_int_rx_flag = 1;

g_app_uart_int_rx_len = length;

}

static void app_uart_write_int_handler(const void *buffer, uint32_tlength, const void *params)

{

unused(buffer);

unused(length);

unused(params);

uint8_t *buff = (void *)buffer;

osal_printk("uart%d writedata[] =", UART_BUS_1);

for (uint8_t i = 0; i

{

osal_printk("%d", buff[i]);

}

osal_printk(" ");

}

static void *uart_task(const char *arg)

{

unused(arg);

/* UART pinmux. */

app_uart_init_pin();

/* UART init config. */

app_uart_init_config();

osal_printk("uart%d intmode register receive callback start! ", UART_BUS_1);

if(uapi_uart_register_rx_callback(UART_BUS_1,UART_RX_CONDITION_FULL_OR_SUFFICIENT_DATA_OR_IDLE,

1, app_uart_read_int_handler) == ERRCODE_SUCC) {

osal_printk("uart%dint mode register receive callback succ! ", UART_BUS_1);

}

while (1)

{

osDelay(UART_TASK_DURATION_MS);

while(g_app_uart_int_rx_flag != 1) {

osDelay(CONFIG_UART_INT_WAIT_MS);

}

g_app_uart_int_rx_flag = 0;

osal_printk("uart%dint mode send back! ", UART_BUS_1);

if(uapi_uart_write_int(UART_BUS_1, g_app_uart_rx_buff, g_app_uart_int_rx_len, 0,

app_uart_write_int_handler) == ERRCODE_SUCC)

{

osal_printk("uart%d int mode send back succ! ",UART_BUS_1);

}

g_app_uart_int_rx_len = 0;

}

return NULL;

}

static void uart_entry(void)

{

osThreadAttr_t attr;

attr.name ="UartTask";

attr.attr_bits = 0U;

attr.cb_mem = NULL;

attr.cb_size = 0U;

attr.stack_mem = NULL;

attr.stack_size =UART_TASK_STACK_SIZE;

attr.priority = UART_TASK_PRIO;

if(osThreadNew((osThreadFunc_t)uart_task, NULL, &attr) == NULL) {

/* Create task fail. */

}

}

/* Run the uart_entry. */

app_run(uart_entry);

由于電腦只有一個串口,不能同時連接AP15,AP14和AP12,AP13兩個UART口進行測試,所以進行了以下測試:

53f7dd88-a63a-11ee-8b88-92fbcf53809c.png

從測試結果來看,UART0和UART1都已經能正常工作了,并且UART0是在引腳AP15和AP14上,UART1是工作在AP12和AP13上面,本例子程序只是對UART1進行了初始化,所以看來UART0是在系統其他地方進行了配置,并且通過調用osal_prink函數可以往UART0進行debug log發送。

所以個人感覺,UART0在萬不得已的情況下就不要去動它了,串口就用其他的UART BUS好了,除非其他的都不夠用了,那就再去研究一下怎么去使用UART0,對自己好一點,別亂折騰。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • uart
    +關注

    關注

    22

    文章

    1270

    瀏覽量

    103362
  • 串口調試
    +關注

    關注

    2

    文章

    270

    瀏覽量

    25076
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86277
  • vscode
    +關注

    關注

    1

    文章

    167

    瀏覽量

    8384

原文標題:遙遙領先,星閃芯片BS25外設程序測試—uart

文章出處:【微信號:TalkBT,微信公眾號:藍牙】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何選擇和編譯海思BS25 SDK下的sle mouse工程

    本文介紹如何選擇和編譯海思BS25 SDK下的sle mouse工程。本文假設開發環境已經搭建完畢,具體搭建流程請參考《遙遙領先,華為海
    的頭像 發表于 10-27 11:23 ?5137次閱讀
    如何選擇和編譯海思<b class='flag-5'>星</b><b class='flag-5'>閃</b><b class='flag-5'>BS25</b> <b class='flag-5'>SDK</b>下的sle mouse工程

    BS25開發板NL001初體驗

    最近拿到了一塊BS25開發板NL001,做一個山寨版的“開箱”吧。
    的頭像 發表于 11-17 09:17 ?5815次閱讀
    <b class='flag-5'>星</b><b class='flag-5'>閃</b><b class='flag-5'>BS25</b><b class='flag-5'>開發板</b><b class='flag-5'>NL001</b>初體驗

    如何搭建BS25開發環境

    (SparkLink)不多做介紹,有興趣可以自行查找資料,簡單來說就是一種新型的無線規范,理想是取代Bluetooth和Wifi,并且解決了一些藍牙和wifi的痛點。BS25是某國內廠商推出的一顆支持
    的頭像 發表于 11-18 17:14 ?3440次閱讀
    如何搭建<b class='flag-5'>星</b><b class='flag-5'>閃</b><b class='flag-5'>BS25</b><b class='flag-5'>開發</b>環境

    用BurnTool給芯片BS25燒寫程序

    本文介紹用BurnTool給芯片BS25燒寫程序
    的頭像 發表于 11-22 09:49 ?3645次閱讀
    用BurnTool給<b class='flag-5'>星</b><b class='flag-5'>閃</b>芯片<b class='flag-5'>BS25</b>燒寫<b class='flag-5'>程序</b>

    華為BS25 SDKGADC設置的陷阱

    用華為 BS25 SDK 做產品中發現 GADC的 一個小陷阱。
    的頭像 發表于 12-01 14:01 ?1887次閱讀
    華為<b class='flag-5'>星</b><b class='flag-5'>閃</b><b class='flag-5'>BS25</b> <b class='flag-5'>SDK</b><b class='flag-5'>中</b>GADC設置的陷阱

    利用BS25開發板NL001測試SDK外設程序

    本文利用BS25開發板NL001測試一下官方
    的頭像 發表于 12-22 10:49 ?2617次閱讀
    <b class='flag-5'>利用</b><b class='flag-5'>星</b><b class='flag-5'>閃</b><b class='flag-5'>BS25</b><b class='flag-5'>開發板</b><b class='flag-5'>NL001</b><b class='flag-5'>測試</b><b class='flag-5'>SDK</b>中<b class='flag-5'>外設</b><b class='flag-5'>程序</b>

    【BearPi-Pico H3863開發板體驗連載】玩轉,可視化呈現

    收到BearPi-Pico H3863開發板,首先感謝電子發燒友與小熊派提供的平臺與開發板開發板有兩塊,可以用來做
    發表于 09-30 14:26

    如何搭建海思BS25開發環境?

    (SparkLink)不多做介紹,有興趣可以自行查找資料,簡單來說就是一種新型的無線規范,用于取代Bluetooth和Wifi,并且解決了一些藍牙和wifi的痛點。
    的頭像 發表于 10-07 15:23 ?6783次閱讀
    如何搭建海思<b class='flag-5'>星</b><b class='flag-5'>閃</b><b class='flag-5'>BS25</b><b class='flag-5'>開發</b>環境?

    解決BS25 1.0.T20.12版本開發工具默認SDK無法編譯的問題

    本文介紹在BS25 1.0.T20.12版本開發工具下,默認的SDK無法編譯的問題。
    的頭像 發表于 11-08 09:40 ?1285次閱讀
    解決<b class='flag-5'>BS25</b> 1.0.T20.12版本<b class='flag-5'>開發</b>工具默認<b class='flag-5'>SDK</b>無法編譯的問題

    如何用BurnTool給海思的芯片BS25燒寫程序

    本文介紹用BurnTool給海思的芯片BS25燒寫程序
    的頭像 發表于 11-14 09:08 ?5661次閱讀
    如何用BurnTool給海思的<b class='flag-5'>星</b><b class='flag-5'>閃</b>芯片<b class='flag-5'>BS25</b>燒寫<b class='flag-5'>程序</b>?

    海思BS25開發板NL001初體驗

    最近拿到了一塊BS25開發板NL001,做一個山寨版的“開箱”吧。
    的頭像 發表于 11-15 10:01 ?4928次閱讀
    海思<b class='flag-5'>星</b><b class='flag-5'>閃</b><b class='flag-5'>BS25</b><b class='flag-5'>開發板</b><b class='flag-5'>NL001</b>初體驗

    華為 SLE 開發板 BS25SDK 初探

    BS25開發板SDK初步接觸
    的頭像 發表于 11-15 16:01 ?3852次閱讀

    華為SLE開發板BS25SDK初探2

    按照上一篇文章的接口定義連接鼠標標傳感器 paw3395,SDK提供的樣板程序“sel_mouse_with_dongle”能正常工作。
    的頭像 發表于 11-18 12:08 ?3766次閱讀

    解決芯片BS25 1.0.T20.12版本開發工具默認SDK無法編譯的問題

    本文介紹在BS25 1.0.T20.12版本開發工具下,默認的SDK無法編譯的問題。
    的頭像 發表于 11-21 09:08 ?1645次閱讀
    解決<b class='flag-5'>星</b><b class='flag-5'>閃</b>芯片<b class='flag-5'>BS25</b> 1.0.T20.12版本<b class='flag-5'>開發</b>工具默認<b class='flag-5'>SDK</b>無法編譯的問題

    新品SLE duino開發板搶先看!

    //2023年,可謂爆發之年。自2023年7月芯片問世至今,各類搭載技術的產品頻頻發
    的頭像 發表于 12-01 08:13 ?5738次閱讀
    <b class='flag-5'>星</b><b class='flag-5'>閃</b>新品SLE duino<b class='flag-5'>開發板</b>搶先看!
    主站蜘蛛池模板: 日韩成人免费观看 | 河南毛片 | 亚洲a在线观看 | 91成人在线播放 | 中文字幕在线观看你懂的 | 在线观看视频你懂得 | 国产高清免费午夜在线视频 | 日韩精品一区二区在线观看 | 好黄好猛好爽好痛的视频 | 欧美高清另类 | 国产视频观看 | 一级大片免费看 | 午夜啪啪网站 | 天天射天天操天天色 | 天天躁日日2018躁狠狠躁 | 欧美三级色 | 丁香六月纪婷婷激情综合 | 天天综合色天天综合 | 日本国产在线 | 国产亚洲精品在天天在线麻豆 | 他也色在线视频 | 国产黄色三级网站 | 性欧美另类 | 色网站免费看 | 成 人色 网 站 欧美大片在线观看 | 一区二区手机视频 | 草伊人| 色视频免费版高清在线观看 | 乱肉情欲杂乱小说 | 五月月色开心婷婷久久合 | xxxx久久| 美女色18片黄黄色 | 国产乱码1卡一卡二卡 | 亚洲bbbbbxxxxx精品三十七 | 国产精品成人一区二区三区 | 神马影院午夜dy888 | 色婷婷色丁香 | www.xxx.国产 | 欧美人成一本免费观看视频 | 天天干在线播放 | 免费拍拍视频 |