IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【国产MCU学步随笔------兆易创新GD32f103CBT6,及vscode编辑环境配置】 -> 正文阅读

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

vscode编辑环境配置

  1. 下载官方库:链接
  2. 插件安装
    c/c++的常用插件,不喜欢英文的可以换个中文:
    在这里插入图片描述
  3. 工程目录下添加vsc的配置文件
    工程目录下新建.vscode文件夹,然后里面新建两个文件:
  • c_cpp_properties.json
  • setting.json
    文件内容如下,注意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
    文件内容:
{
    "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路径需要改动的话换成你的对应路径。
  • 对于第三方库,照葫芦画瓢即可

官方库例程迷惑解答

时钟在哪里初始化

先在启动文件中调用了SystemInit()然后才调用main(),SystemInit()位于system_gd32f10x.c里面,然后在该函数中初始化时钟
在这里插入图片描述
在这里插入图片描述

时钟在哪里配置

也是在system_gd32f10x.c里面,最上面,通过这个宏就可以快捷配置
在这里插入图片描述

NVIC在哪里初始化

同上,初始化时钟函数下面就会初始化中断管理
在这里插入图片描述

NVIC中断分组是什么

通过以下语句获取当前中断分组:

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

不进行更改的话可以看到中断分组:
在这里插入图片描述
参考CM3权威指南:
在这里插入图片描述
stm32有4个bit是用来中断分组的,gd32也是,如下应有手册说明。该寄存器是MSB对齐的,所以GD32f103CBT6的默认中断优先级分组是[7:6]两位表示抢占优先级,[5:4]两位表示亚优先级,[3:0]四位并未使用

在这里插入图片描述

printf怎么重映射

这个参考GD固件库,先配置对应串口,再添加重隐射函数就好了,官方例程copy就可以,注意gd串口号为0、1、2
串口1重映射函数如下:

/* 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的单片机,如果后续还有用gd芯片的话本文档会不定期更新
欢迎各路小白一起讨论

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-30 12:42:51  更:2021-10-30 12:44:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/23 22:08:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计