女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

【Ubuntu VSCODE+GCC】CW32L031實現printf工程

華仔的編程隨筆 ? 來源:華仔的編程隨筆 ? 作者:華仔的編程隨筆 ? 2023-06-28 17:07 ? 次閱讀

【Ubuntu VSCODE+GCC】CW32L031實現printf工程

一、工程包準備

我到時會把包附在后面。

二、在ubuntu下面新建一個目錄cw32l031_uart,把工程包拷進這個目錄,同時賦于文件所有的讀寫權限:chmod 777 -R ./CW32l031_GCC

三、用vscode打開CW32l031_GCC文件夾,并把文件夾添加到工種區。

四、在Core目錄下面新建User文件夾,文件夾下新建user_uart.c/user_uar.h。同時賦予User及以下的包的有文件的讀寫權限。目錄結構如下:

image.png

五、借鑒官方示例log,編寫user_uart.c如下:

#include "user_uart.h"

static void SerialInit(uint32_t BaudRate);

static void SerialSend(uint8_t Data);

static uint8_t const pow2_table[] = {0, 1, 2, 3, 4, 5, 6, 7};

void LogInit(void)

{

SerialInit(LOG_SERIAL_BPS);

}

static void SerialInit(uint32_t BaudRate)

{

uint32_t PCLK_Freq;

GPIO_InitTypeDef GPIO_InitStructure = {0};

USART_InitTypeDef USART_InitStructure = {0};



PCLK_Freq = SystemCoreClock > > pow2_table[CW_SYSCTRL- >CR0_f.HCLKPRS];

PCLK_Freq > >= pow2_table[CW_SYSCTRL- >CR0_f.PCLKPRS];



// 調試串口使用UART1

//  PA8- >TX

//  PA9< -RX

// 時鐘使能

__RCC_GPIOA_CLK_ENABLE();

__RCC_UART1_CLK_ENABLE();



// 先設置UART TX RX 復用,后設置GPIO的屬性,避免口線上出現毛刺

PA08_AFx_UART1TXD();

PA09_AFx_UART1RXD();



GPIO_InitStructure.Pins = GPIO_PIN_8;

GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_Init(CW_GPIOA, &GPIO_InitStructure);



GPIO_InitStructure.Pins = GPIO_PIN_9;

GPIO_InitStructure.Mode = GPIO_MODE_INPUT;

GPIO_Init(CW_GPIOA, &GPIO_InitStructure);



USART_InitStructure.USART_BaudRate = BaudRate;

USART_InitStructure.USART_Over = USART_Over_16;

USART_InitStructure.USART_Source = USART_Source_PCLK;

USART_InitStructure.USART_UclkFreq = PCLK_Freq;

USART_InitStructure.USART_StartBit = USART_StartBit_FE;

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_Parity = USART_Parity_No;

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;





USART_Init(CW_UART1, &USART_InitStructure);

}

static void SerialSend(uint8_t Data)

{

USART_SendData_8bit(CW_UART1, Data);

while (USART_GetFlagStatus(CW_UART1, USART_FLAG_TXE) == RESET);

}

int _write (int fd, char *pBuffer, int size)

{

for (int i = 0; i < size; i++)  

{  

    SerialSend((uint8_t)pBuffer[i]);

}  

return size;

}

【代碼解釋】在log.c中,我們是基于mdk的printf函數重定向,在gcc工程下面編譯是不會報錯,但是是不會向串口輸出的,所以要修改_write函數。

六、添加User目錄到Core.mk中:

image.png

七、編譯與下載,我們執行make flash就可實現工程編譯與下載:

image.png

八、效果展示:

PA8PA9分別接到USB轉TTL,打開串口調度助手,就可以實現hello cw32l031的歡迎信息了:

image.png

【小結】使用ubuntu下的vscode+gcc進行CW32L031開發,相比MDK\\IAR,是一款免費的開發板工具,同時相比MDK編譯等速度上又有質的飛躍!

附工程包:

*附件:cw32l031_gcc.zip

審核編輯:湯梓紅

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

    關注

    22

    文章

    1268

    瀏覽量

    103261
  • Ubuntu
    +關注

    關注

    5

    文章

    586

    瀏覽量

    30826
  • 編譯
    +關注

    關注

    0

    文章

    676

    瀏覽量

    33748
  • Printf
    +關注

    關注

    0

    文章

    84

    瀏覽量

    14085
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    創建CW32L083GCC工程模板

    首創武漢芯源CW32L083GCC工程模版,解決官方沒有提供的用于linux、macOs下的開發難題。
    的頭像 發表于 06-20 09:03 ?2413次閱讀

    首創ubuntucw32l031vscode+gcc工程創建、下載、調試

    首創在ubuntu下面用vscode實現cw32l031gcc工程創建、編譯、下載與調試
    的頭像 發表于 06-25 21:49 ?2.5w次閱讀
    首創<b class='flag-5'>ubuntu</b>下<b class='flag-5'>cw32l031</b>的<b class='flag-5'>vscode+gcc</b><b class='flag-5'>工程</b>創建、下載、調試

    CW32 搭建VSCODE+GCC交叉編譯環境

    在win10下面創建vscode+gcc開發武漢芯源CW32L系列MCU的編譯環境
    的頭像 發表于 06-28 17:02 ?2.7w次閱讀
    <b class='flag-5'>CW</b>32 搭建<b class='flag-5'>VSCODE+GCC</b>交叉編譯環境

    Ubuntu VSCODE+GCCCW32L031實現UART控制LED

    ubuntu系統下面使用vscode 使用串口驅動實現對板載LED燈的控制。
    的頭像 發表于 06-28 17:10 ?1280次閱讀
    【<b class='flag-5'>Ubuntu</b> <b class='flag-5'>VSCODE+GCC</b>】<b class='flag-5'>CW32L031</b><b class='flag-5'>實現</b>UART控制LED

    Ubuntu VSCODE+GCCCW32L031驅動sht30

    CW32L031ubuntu下面,使用VSCODE+gcc實現對sht30溫濕計的驅動
    的頭像 發表于 06-28 17:12 ?2.4w次閱讀
    <b class='flag-5'>Ubuntu</b> <b class='flag-5'>VSCODE+GCC</b>】<b class='flag-5'>CW32L031</b>驅動sht30

    武漢芯源CW32L031實現超遠距離超低耗無線采集

    武漢芯源的CW32L031實現超低功耗無線溫濕度采集,可實現在電池供電下,十年的工作時間。
    的頭像 發表于 06-30 16:03 ?2.3w次閱讀
    武漢芯源<b class='flag-5'>CW32L031</b><b class='flag-5'>實現</b>超遠距離超低耗無線采集

    【產品介紹】32位低功耗MCU CW32L031系列產品介紹

    指南和購買渠道主流開發設計工具和編程器廠家已實現CW32L031系列的支持。同時還有配套的開發工具,用于CW32L031系列MCU的評估。CW32L031CxTx StartKit
    發表于 09-16 10:30

    首創CW32L083GCC工程模版

    的啟動文件跟LD應該可以相互借鑒。所以償試修改CW32F030的工程實現GCC工程。 【實現
    發表于 06-19 22:17

    ubuntu下面用vscdoe實現CW32L031工程創建、編譯、下載與調試

    目前官方提供CW32L083只提供了MDK、IAR下的固件庫、啟動文件。我有過成功CW32L083的項目移植的經驗,現在成功的把CW32L031工程移植到
    發表于 06-25 21:13

    CW32L031產品介紹

    CW32L031是一款基于eFlash的單芯片低功耗微控制器,集成了ARM?Cortex?-M0+ 核心,主頻高達48MHz,高速嵌入式存儲器(高達64KB的FLASH和 高達8K字節的SRAM
    發表于 09-14 06:02

    CW32L031微控制器數據手冊

    CW32L031 是基于 eFlash 的單芯片低功耗微控制器,集成了主頻高達 48MHz 的 ARM? Cortex?-M0+ 內核、高速嵌入式存儲器(多至 64K 字節 FLASH 和多至 8K
    發表于 09-14 08:26

    CW32L031用戶手冊

    CW32L031核心是32位ARM?Cortex?-M0+微處理器,最大尋址空間為4GB。芯片的內置程序存儲器、數據存儲器、外圍設備和端口寄存器是統一的在相同的4GB線性地址空間中尋址。 內存中
    發表于 09-14 07:09

    CW32L031微處理器用戶手冊

    CW32L031 在使用中需要注意如下事項:?FLASH、SRAM 以及 GPIOx_ODR、CRC_DR 等少數寄存器支持 8bit/16bit/32bit 訪問方式,其它外設只支持32bit
    發表于 09-14 07:12

    CW32L031 StartKit軟件包

    CW32L031 StartKit 軟件包
    發表于 09-15 07:58

    【產品介紹】32位低功耗MCU CW32L031系列產品介紹

    Cortex-M0+低功耗MCUCW32L031系列型號展示武漢芯源半導體32位低功耗CW32L031系列集成了主頻可達48MHz的ARMCortex?-M0+內核,最大64K字節FLASH、最大
    的頭像 發表于 09-16 10:42 ?1880次閱讀
    【產品介紹】32位低功耗MCU <b class='flag-5'>CW32L031</b>系列產品介紹