91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

【Ubuntu VSCODE+GCC】CW32L031實現(xiàn)printf工程

華仔的編程隨筆 ? 來源:華仔的編程隨筆 ? 作者:華仔的編程隨筆 ? 2023-06-28 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【Ubuntu VSCODE+GCC】CW32L031實現(xiàn)printf工程

一、工程包準備

我到時會把包附在后面。

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

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

四、在Core目錄下面新建User文件夾,文件夾下新建user_uart.c/user_uar.h。同時賦予User及以下的包的有文件的讀寫權(quán)限。目錄結(jié)構(gòu)如下:

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];



// 調(diào)試串口使用UART1

//  PA8- >TX

//  PA9< -RX

// 時鐘使能

__RCC_GPIOA_CLK_ENABLE();

__RCC_UART1_CLK_ENABLE();



// 先設(shè)置UART TX RX 復(fù)用,后設(shè)置GPIO的屬性,避免口線上出現(xiàn)毛刺

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函數(shù)重定向,在gcc工程下面編譯是不會報錯,但是是不會向串口輸出的,所以要修改_write函數(shù)。

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

image.png

七、編譯與下載,我們執(zhí)行make flash就可實現(xiàn)工程編譯與下載:

image.png

八、效果展示:

PA8PA9分別接到USB轉(zhuǎn)TTL,打開串口調(diào)度助手,就可以實現(xiàn)hello cw32l031的歡迎信息了:

image.png

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

附工程包:

*附件:cw32l031_gcc.zip

審核編輯:湯梓紅

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

    關(guān)注

    22

    文章

    1314

    瀏覽量

    106634
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    613

    瀏覽量

    33366
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    694

    瀏覽量

    35158
  • Printf
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    14734
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    首創(chuàng)ubuntucw32l031vscode+gcc工程創(chuàng)建、下載、調(diào)試

    首創(chuàng)在ubuntu下面用vscode實現(xiàn)cw32l031gcc工程創(chuàng)建、編譯、下載與調(diào)試
    的頭像 發(fā)表于 06-25 21:49 ?2.6w次閱讀
    首創(chuàng)<b class='flag-5'>ubuntu</b>下<b class='flag-5'>cw32l031</b>的<b class='flag-5'>vscode+gcc</b><b class='flag-5'>工程</b>創(chuàng)建、下載、調(diào)試

    CW32 搭建VSCODE+GCC交叉編譯環(huán)境

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

    Ubuntu VSCODE+GCCCW32L031實現(xiàn)UART控制LED

    ubuntu系統(tǒng)下面使用vscode 使用串口驅(qū)動實現(xiàn)對板載LED燈的控制。
    的頭像 發(fā)表于 06-28 17:10 ?2269次閱讀
    【<b class='flag-5'>Ubuntu</b> <b class='flag-5'>VSCODE+GCC</b>】<b class='flag-5'>CW32L031</b><b class='flag-5'>實現(xiàn)</b>UART控制LED

    Ubuntu VSCODE+GCCCW32L031驅(qū)動sht30

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

    武漢芯源CW32L031實現(xiàn)超遠距離超低耗無線采集

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

    CW32L031嘀嗒定時器怎樣定時1us?

    CW32L031嘀嗒定時器 怎樣定時1us,以便DS18B20,DHT11使用。提供一下代碼
    發(fā)表于 12-10 07:40

    【產(chǎn)品介紹】32位低功耗MCU CW32L031系列產(chǎn)品介紹

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

    首創(chuàng)CW32L083GCC工程模版

    的啟動文件跟LD應(yīng)該可以相互借鑒。所以償試修改CW32F030的工程實現(xiàn)GCC工程。 【實現(xiàn)
    發(fā)表于 06-19 22:17

    ubuntu下面用vscdoe實現(xiàn)CW32L031工程創(chuàng)建、編譯、下載與調(diào)試

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

    CW32L031產(chǎn)品介紹

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

    CW32L031微控制器數(shù)據(jù)手冊

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

    CW32L031用戶手冊

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

    CW32L031 StartKit軟件包

    CW32L031 StartKit 軟件包
    發(fā)表于 09-15 07:58

    【產(chǎn)品介紹】32位低功耗MCU CW32L031系列產(chǎn)品介紹

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

    CW32L010 MCU在VSCode+GCC+EIDE+JLink下的使用示例

    、安裝Embedded IDE、Cortex-Debug等插件。 2、下載安裝gcc-arm-none-eabi工具鏈。 3、運行VSCode,打開CW32L010 MCU的GCC示例
    的頭像 發(fā)表于 07-01 14:52 ?1029次閱讀
    <b class='flag-5'>CW32L</b>010 MCU在<b class='flag-5'>VSCode+GCC</b>+EIDE+JLink下的使用示例