日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【国产MCU学步随笔------兆易创新GD32f103CBT6,及vscode编辑环境配置】

發(fā)布時間:2024/3/24 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【国产MCU学步随笔------兆易创新GD32f103CBT6,及vscode编辑环境配置】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • vscode編輯環(huán)境配置
  • 官方庫例程迷惑解答
    • 時鐘在哪里初始化
    • 時鐘在哪里配置
    • NVIC在哪里初始化
    • NVIC中斷分組是什么
    • printf怎么重映射

vscode編輯環(huán)境配置

  • 下載官方庫:鏈接
  • 插件安裝
    c/c++的常用插件,不喜歡英文的可以換個中文:
  • 工程目錄下添加vsc的配置文件
    工程目錄下新建.vscode文件夾,然后里面新建兩個文件:
    • c_cpp_properties.json
    • setting.json
      文件內(nèi)容如下,注意definesp配置下面的配置項是保存后自動生成的:
    {"configurations": [{"name": "temp","includePath": [//"D:/Keil_v5/ARM/ARMCC/include","D:/GreenSoft/gcc-arm-none-eabi-10-2020-q4-major/arm-none-eabi/include","${workspaceFolder}/**"// "${workspaceFolder}/Firmware/CMSIS/GD/GD32F10x/Include",// "${workspaceFolder}/firmware/CMSIS",// "${workspaceFolder}/Template",// "${workspaceFolder}/firmware/GD32F10x_standard_peripheral/Include"],"defines": ["__CC_ARM","GD32F10X_MD"],"intelliSenseMode": "windows-msvc-x64","compilerPath": "D:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30037\\bin\\Hostx64\\x64\\cl.exe","cStandard": "c17","cppStandard": "c++17"}],"version": 4 }
    • setting.json
      文件內(nèi)容:
    {"files.associations": {"gd32f10x.h": "c","gd32f10x_libopt.h": "c","main.h": "c"},"clang.cflags": ["-I${workspaceRoot}/Firmware/CMSIS/GD/GD32F10x/Include"] }

    如果安裝了clangd插件要注意:

    • setting.json里面的clang.cflags路徑需要改動的話換成你的對應(yīng)路徑。
    • 對于第三方庫,照葫蘆畫瓢即可

    官方庫例程迷惑解答

    時鐘在哪里初始化

    先在啟動文件中調(diào)用了SystemInit()然后才調(diào)用main(),SystemInit()位于system_gd32f10x.c里面,然后在該函數(shù)中初始化時鐘

    時鐘在哪里配置

    也是在system_gd32f10x.c里面,最上面,通過這個宏就可以快捷配置

    NVIC在哪里初始化

    同上,初始化時鐘函數(shù)下面就會初始化中斷管理

    NVIC中斷分組是什么

    通過以下語句獲取當(dāng)前中斷分組:

    printf("\r\nNVIC Priority Group is %d\r\n", NVIC_GetPriorityGrouping());

    不進行更改的話可以看到中斷分組:

    參考CM3權(quán)威指南:

    stm32有4個bit是用來中斷分組的,gd32也是,如下應(yīng)有手冊說明。該寄存器是MSB對齊的,所以GD32f103CBT6的默認中斷優(yōu)先級分組是[7:6]兩位表示搶占優(yōu)先級,[5:4]兩位表示亞優(yōu)先級,[3:0]四位并未使用

    printf怎么重映射

    這個參考GD固件庫,先配置對應(yīng)串口,再添加重隱射函數(shù)就好了,官方例程copy就可以,注意gd串口號為0、1、2
    串口1重映射函數(shù)如下:

    /* retarget the C library printf function to the USART */ int fputc(int ch, FILE *f) {usart_data_transmit(USART1, (uint8_t)ch);while(RESET == usart_flag_get(USART1, USART_FLAG_TBE));return ch; }

    第一次用gd的單片機,如果后續(xù)還有用gd芯片的話本文檔會不定期更新
    歡迎各路小白一起討論

    總結(jié)

    以上是生活随笔為你收集整理的【国产MCU学步随笔------兆易创新GD32f103CBT6,及vscode编辑环境配置】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。