【国产MCU学步随笔------兆易创新GD32f103CBT6,及vscode编辑环境配置】
文章目录
- vscode编辑环境配置
- 官方库例程迷惑解答
- 时钟在哪里初始化
- 时钟在哪里配置
- NVIC在哪里初始化
- NVIC中断分组是什么
- printf怎么重映射
vscode编辑环境配置
- 下载官方库:链接
- 插件安装
c/c++的常用插件,不喜欢英文的可以换个中文:
- 工程目录下添加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芯片的话本文档会不定期更新
欢迎各路小白一起讨论
【国产MCU学步随笔------兆易创新GD32f103CBT6,及vscode编辑环境配置】相关推荐
- 「免费申请」基于Arm Cortex-M4的兆易创新GD32F427高性能开发板试用活动
申请链接:「免费申请」基于Arm Cortex-M4的兆易创新GD32F427高性能开发板试用活动 基于Arm® Cortex®-M4的兆易创新GD32F427开发板免费试用活动 近期兆易创新发布了全 ...
- STM32CUBEIDE(15)----移植兆易创新SPI Nor Flash之GD25Q64Flash
spi概述 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的 ...
- STM32CUBEMX开发GD32F303(16)----移植兆易创新SPI Nor Flash之GD25Q64Flash
spi概述 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的 ...
- GD32F303固件库开发(16)----移植兆易创新SPI Nor Flash之GD25Q64Flash
spi概述 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的 ...
- 芯片|兆易创新逾7300万股限售股下周一上市流通 占总股本23%
[TechWeb]8月13日消息,上交所上市公司.芯片设计公司兆易创新昨晚发布公告称,逾7300万股限售股下周一上市流通,占总股本23%. 本次限售股上市类型 经中国证券监督管理委员会证监许可[201 ...
- 瑞萨e2studio(22)----移植兆易创新SPI Nor Flash之GD25Q64Flash
瑞萨e2studio.22--移植兆易创新SPI Nor Flash之GD25Q64Flash spi概述 视频教学 csdn课程 样品申请 完整代码下载 硬件准备 新建工程 工程模板 保存工程路径 ...
- 2021秋招IC验证面经-华为/英伟达/兆易创新/ZeKu
华为 华为一面技术面: 简历上有实习经验的,会先问实习都做过哪些东西,哪些项目,画下图简单解释一下,在你做这个项目的时候,面临的最大的挑战是什么,如何解决的? 解释一下setup time和hold ...
- 关于参加“兆易创新杯”第十三届中国研究生电子设计竞赛,国赛二等奖的总结(fishing_5)
前言 暑假快要过完了,研电赛也终于结束了,值此新旧学期交替之际,打算把比赛了有将近小半年的研电赛的过程简单地总结一下,人说有总结才能有进步嘛. 依稀记得正式开始准备比赛的时间是2018年4月18日 ...
- GD32F405RGT6单片机芯片GigaDevice兆易创新ARM Cortex-M4微控制器
描述 GD32F405系列互联型产品采用全新工艺制程设计,整合了强大的运算效能和丰富的外设接口.处理器主频可达168MHz,并提供了完整的DSP指令集,并行计算能力和专用浮点运算单元(FPU). GD ...
最新文章
- cmd常见错误及解决方法
- JQuery操作CheckBox和Radio
- 百度翻译接口测试(2)
- 物理竞赛得奖学计算机,物理竞赛林紫琪带你探索清华学堂计算机科学实验班”(姚班)...
- MapStruct:将数据从一个bean传输到另一个bean
- 中国移动MM7 API用户手册(七)
- 2003 Server下隐藏帐号的建立
- CCF NOI1008 水仙花数
- Rust : codewars的up AND down 算法
- C# 调用office 2007 及 SaveAsPDFandXPS.exe 将Word、Excel、PPT转换为PDF文件
- 照片宽高比怎么设置_2019年中级会计报名照片上传完整攻略
- 代码的马斯洛金字塔理论
- Facebook安卓Feed流的内存优化实践
- 2021-08-24
- 常用的薪酬管理系统有哪些,薪酬管理需要具备哪些功能?
- C++(类与对象)是纸老虎吗?
- 智能生活 App SDK 开发入门教程【内附代码段 】
- Roaring BitMap(高效压缩位图)
- 初探深度优化搜索--小白版
- node-telegram-bot-api 基于Nodejs的TG机器人