精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

什么是嵌入式命令行交互工具

汽車電子技術 ? 來源:玩轉單片機 ? 作者: noah ? 2023-02-20 15:07 ? 次閱讀

最近看了幾篇嵌入式命令行交互工具的推文,全文介紹和開源托管平臺基本一致,感覺就像是在水文章;今天摸魚的時候移植用了一下,為后續項目開發搭建一個交互,方便后續參數調試和硬件調試,開源鏈接如下:

https://gitee.com/nrush/nr_micro_shell

| 移植準備

1、去托管平臺把源碼下下來;

2、準備一個基礎工程,實現串口重定義輸出:

圖片

| 移植源碼

1、把核心源碼復制到工程中:

圖片

2、把命令示例源碼復制到工程中:

圖片

3、把源碼添加到工程中:

圖片

4、屏蔽RT-Thread 的頭文件:

圖片

5、修改輸出的末尾行模式:

圖片

6、初始化nr_micro_shell:

#include "gd32f10x.h"
#include "stdio.h"
#include "nr_micro_shell.h"


// uart配置
void hal_log_init(void)
{
    /* 使GPIO時鐘 */
    rcu_periph_clock_enable(RCU_GPIOA);


    /* 使USART時鐘 */
    rcu_periph_clock_enable(RCU_USART0);


    /* 連接端口到USARTx_Tx */
    gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);


    /* 連接端口到USARTx_Rx */
    gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);


    /* USART配置 */
    usart_deinit(USART0);                                   /*!< 復位外設USART */
    usart_word_length_set(USART0, USART_WL_8BIT);           /*!< 配置USART字長 */
    usart_stop_bit_set(USART0, USART_STB_1BIT);             /*!< 配置USART停止位 */
    usart_parity_config(USART0, USART_PM_NONE);             /*!< 配置USART奇偶校驗 */
    usart_baudrate_set(USART0, 115200U);                    /*!< 配置USART波特率 */
    usart_receive_config(USART0, USART_RECEIVE_ENABLE);     /*!< USART/UART接收器配置 */
    usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);   /*!< USART/UART發送器配置 */

    usart_enable(USART0);                                   /*!< 使能USART */

    /*中斷管理器使能,并分配優先級*/
    nvic_irq_enable(USART0_IRQn, 1, 0);
    /*清除中斷標志*/
    usart_interrupt_flag_clear(USART0, USART_INT_FLAG_RBNE);
    usart_interrupt_flag_clear(USART0, USART_INT_FLAG_IDLE);
    /* 使能串口中斷 */
    usart_interrupt_enable(USART0, USART_INT_RBNE);         /*!< 接收不為空中斷 */
}


// usart0中斷
void USART0_IRQHandler(void)
{
    if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE))
    {
        /* 清除標志位 */
        usart_interrupt_flag_clear(USART0, USART_INT_FLAG_RBNE);
        /* 接收數據(注意) */
        shell(usart_data_receive(USART0));
    }
}


//printf重定向函數
int fputc(int ch,FILE *f)
{
    usart_data_transmit(USART0, (uint8_t)ch);  //發送一字節數據
    while(RESET == usart_flag_get(USART0, USART_FLAG_TBE));  //等待發送完成
    return ch;
}


// 外設初始化
void hal_device_init(void)
{
    hal_log_init();
    /* 初始化 */
    shell_init();
}


// 主循環
int main(void)
{
    // 設置優先級組
    nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0);
    // 外設初始化
    hal_device_init();
    while (1)
    {

    }
}

7、查看效果:

圖片

| 定義指令

1、添加自定義指令代碼:

圖片

2、查看效果:

圖片

| 最終效果

移植成功后就可以在MCU中體驗Linux的shell命令那種感覺,注意一定要修改輸出的末尾行模式,不然會不能正常使用,來感受一下最終效果:

圖片

最終的效果還是不錯的,和Linux的體驗類似,感興趣的同學可以移植來體驗一下MCU級別的shell命令交互;

--END--

閱讀 225

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

    關注

    1

    文章

    377

    瀏覽量

    28111
  • 參數調試
    +關注

    關注

    0

    文章

    5

    瀏覽量

    4966
  • 硬件調試
    +關注

    關注

    1

    文章

    9

    瀏覽量

    10691
收藏 人收藏

    評論

    相關推薦

    在STM32實現命令行

    工作中的開發環境都是基于linux命令行交互,作為命令行的重度使用者,玩單片機也要使用命令行工具,百度了一些
    發表于 12-09 11:32 ?2280次閱讀

    Linux命令行的基本使用

    嵌入式Linux開發環境的構建,Linux命令行的基本使用,VI、GCC、Makefile基本工具的使用,交叉開發環境的使用。學習條件: 1.C語言編程基礎
    發表于 11-05 09:08

    Linux命令行怎么使用

    嵌入式Linux開發環境的構建,Linux命令行的基本使用,VI、GCC、Makefile基本工具的使用,交叉開發環境的使用。學習條件: 1.C語言編程基礎
    發表于 12-16 07:46

    在單片機上實現shell命令行交互的方法

    文章發表于我的個人微信公眾號:嵌入式軟件那些事公眾號會定期分享一些嵌入式軟件開發相關的技術經驗,涉及嵌入式Linux、STM32、RTOS等,希望對大家有所幫助!如何在單片機上實現shell
    發表于 01-12 07:33

    caxa命令行中的應用

    caxa命令行中的應用 命令行對于大多用戶來說往往只是輸入數據的作用,但是其中的奧妙還有很多,下面就給大家
    發表于 10-18 18:18 ?2281次閱讀

    Xilinx軟件命令行工具:XSCT開發和調試

    了解如何使用XSCT,Xilinx軟件命令行工具進行開發和調試。 該視頻演示了XSCT如何充當Xilinx SDK的命令行控制臺。
    的頭像 發表于 11-21 06:02 ?1.4w次閱讀

    Xilinx軟件命令行工具進行開發和調試

    了解如何使用XSCT,Xilinx軟件命令行工具進行開發和調試。 該視頻演示了XSCT如何充當Xilinx SDK的命令行控制臺。
    的頭像 發表于 11-22 06:53 ?6643次閱讀

    Git常見的誤區和命令行工具等綜述

    Git常見的誤區和命令行工具等綜述
    發表于 08-31 09:51 ?0次下載

    使用串口登錄嵌入式Linux設備命令行的方法

    使用串口登錄嵌入式Linux設備命令行的方法如下:舉例如下:平臺:AT91SAM9G45OS: linux-2.6.66交叉編譯器:arm-linux-gcc ,版本:3.4.1用到的命令
    發表于 11-01 16:57 ?10次下載
    使用串口登錄<b class='flag-5'>嵌入式</b>Linux設備<b class='flag-5'>命令行</b>的方法

    學習筆記(02):嵌入式Linux開發基礎-shell命令使用

    嵌入式Linux開發環境的構建,Linux命令行的基本使用,VI、GCC、Makefile基本工具的使用,交叉開發環境的使用。學習條件: 1.C語言編程基礎
    發表于 11-01 18:00 ?14次下載
    學習筆記(02):<b class='flag-5'>嵌入式</b>Linux開發基礎-shell<b class='flag-5'>命令</b>使用

    Golang基于flag庫實現一個命令行工具

    Golang 標準庫中的 flag 庫提供了解析命令行選項的能力,我們可以基于此來開發命令行工具
    的頭像 發表于 10-28 09:26 ?1266次閱讀

    新的開源命令行工具west

    電子發燒友網站提供《新的開源命令行工具west.zip》資料免費下載
    發表于 11-11 09:25 ?0次下載
    新的開源<b class='flag-5'>命令行</b><b class='flag-5'>工具</b>west

    嵌入式命令行交互工具移植過程

    移植成功后就可以在MCU中體驗Linux的shell命令那種感覺,注意一定要修改輸出的末尾行模式,不然會不能正常使用
    的頭像 發表于 02-06 15:00 ?1126次閱讀

    一個開源MCU級的命令行交互組件

    一個開源MCU級命令行交互組件~
    的頭像 發表于 10-17 16:26 ?410次閱讀
    一個開源MCU級的<b class='flag-5'>命令行</b><b class='flag-5'>交互</b>組件

    單片機上如何做shell命令行交互

    做過嵌入式Linux開發或使用過桌面Linux系統的童鞋們,肯定對shell命令交互印象比較深刻,然而我們大多數搞嵌入式軟件開發的碼農都是基于單片機,比如51、STM32等進行開發的,
    的頭像 發表于 11-01 15:16 ?1303次閱讀