keil中新建基于GD32E103RBT6的工程的方法

[复制链接]
969|4
手机看帖
扫描二维码
随时随地手机跟帖
木木guainv|  楼主 | 2021-6-4 14:25 | 显示全部楼层 |阅读模式
1.在E盘中某个位置新建文件夹second,然后在keil中点击project-new uvision project...,,选中刚才新建的文件夹
然后编辑工程名字second,点击确定,再选择芯片,然后出现添加库的对话框,点击取消



2.在first文件夹新建三个文件夹:User,Libraries,然后把GD32E10x_Demo_Suites_V1.1.0\GD32E10x_Demo_Suites_V1.1.0\GD32E10x_Firmware_Library中的两个文件夹(CMSIS和GD32E10x_standard_peripheral)全部放在Libraries文件夹中



3.打开keil,删除原来的组,新建四个组:STARTUP、CMSIS、FWLB、USER,

在STARTUP组添加Libraries\CMSIS\GD\GD32E10x\Source\ARM中的startup_gd32e10x.s

在CMSIS组中添加Libraries\CMSIS\GD\GD32E10x\Source中的  system_gd32e10x.c

在FWLB组添加Libraries\GD32E10x_standard_peripheral\Source中的全部文件


使用特权

评论回复
木木guainv|  楼主 | 2021-6-4 14:25 | 显示全部楼层
4.把GD32E10x_Demo_Suites_V1.1.0\GD32E10x_Demo_Suites_V1.1.0\GD32E103R_START_Demo_Suites\Projects\1_EXTI_KEY_LEDToggle中的gd32e10x_libopt.h放到User文件夹中;

把GD32E10x_Demo_Suites_V1.1.0\GD32E10x_Demo_Suites_V1.1.0\GD32E103R_START_Demo_Suites\Projects\1_EXTI_KEY_LEDToggle中的gd32e10x_it.c 和gd32e10x_it.h 放到User文件夹中;

  然后在User文件夹中新建main.c,在工程second的User组中添加进main.c,打开main.c,输入下面代码

int main(void)
{
}



5.点击keil中的魔术棒选项卡,

在Target选项卡中,勾选use microlib,  ARM Compiler选择Use default compiler version 5 ,XTAL输入12.0

在Output选项卡中,点击select folder for objects,选择文件夹E:\肖超斌的当前文件-20190416建立\second\Objects

在Listing选项卡中,点击select folder for listings,选择文件夹E:\肖超斌的当前文件-20190416建立\second\Listings

在C/C++选项卡中,define中写入GD32E103R_START ,include paths写入

                   .\Libraries\CMSIS

                   .\Libraries\CMSIS\GD\GD32E10x\Include

                   .\Libraries\GD32E10x_standard_peripheral\Include

                   .\User

在Debug选项卡中,仿真器选择J-LINK/J-TRACE Cortex

在Utilities选项卡中,勾选use debug driver,连接电脑和仿真器,仿真器和板子,点击settings按钮,在弹出的Cortex  JLink/JTrace  Target  Driver  Setup窗口,完成下面操作

                   点击Debug选项卡,弹出SEGGER J-Link V6.86 - Target device settings,选择Cortex-M4,再把ort由JTAG改为SW,Max选择5MHz,SW Device中应出现新的设备

                   点击 flash download选项卡中把reset and run、erase sector勾选,Programming Algorithm选择GD32E10x



6.完成上面步骤后,bulid整个工程,第一次时间会比较长,需要等待一会


使用特权

评论回复
木木guainv|  楼主 | 2021-6-4 14:26 | 显示全部楼层
/********************考虑到某些读者可能还会遇到连接芯片不成功的问题,所以我下面列出了建立工程之前的准备工作,以供参考****************************/

1.下载GD32E103RBT6的固件库,下载地址为    http://www.gd32mcu.com/cn/download/8

选择 GD32E10x Demo Suites下载,上面新建工程会用到这个文件

2.下载芯片包,下载地址为   http://www.gd32mcu.com/cn/download/7?kw=     

选择GD32E10x_AddOn_V1.1.0.rar下载,下载后导入keil5

3.准备一个J-Link8仿真器,将芯片的

SWDIO、SWCLK、VSS、VDD与仿真器相连,对话框Cortex JLink/JTrace Target Driver Setup配置如下

8954860b9c7864cf13.png

使用特权

评论回复
木木guainv|  楼主 | 2021-6-4 14:26 | 显示全部楼层
我的测试包括了下面的外设,原程序全以博文的形式发布在我的博客上
(1)GPIO:通用输入/输出接口,这个测试没问题,引脚都能正常地输出高低电平

(2)RCU:复位和时钟单元,这个不用测试,我就测了下CKSYS是不是120MHz

(3)MISC:嵌套中断向量列表控制器,这里面我只测试了SYSTICK,在测试的时候我发现兆易官网提供的《GD32E10x_yonghushouce_Rev1.4》
根本没有关于SYSTICK的寄存器介绍,在官网上也没有提供关于内核的手册,最后我只能使用《STM32 Cortex?-M4内核编程手册(PM0214)》查找资料

(4)EXTI: 外部中断事件控制器,这个测试正常,使用方法很像STM32F103芯片

(5)CAN:局域网控制器模块,这个正常,用环回模式能收到信息

(6)USART:通用同步异步收发器,这个我用别的产品与这个外设进行通信能成功,我的程序中是采用半双工通信,当MAX485使能引脚是高电平的时候,
就是发送,当MAX485使能引脚是低电平的时候,就是接收

(7)DMA:直接存储器访问控制器,我用这个外设和USART结合接收数据,实验效果良好

(8)bitband:位带区和位带别名区测试,我参考STM32的程序写的测试位带别名区的程序,测试正常

(9)I2C:内部集成电路总线接口,这个外设存在很大问题,单独对AT24C02进行写数据能成功,单独对AT24C02读数据也能成功,但把两个程序放一起就
不行了,另外我去掉AT24C02的读程序,只保留写程序,发现加上配置其他不相关引脚的GPIO的程序会对程序执行产生影响,不加程序能执行到最后,加上
程序会一直卡在Wait_EEPROMStandbyState()这个函数这里,具体可以参考原程序。总之这个外设很诡异

(10)ADC:模数转换器,这个外设转换值无法回零,通道上输入零电压(用万用表测过),转换值还是一个大于0的值,我查找了校准代码,也是和
意法的一样,现在这个问题找不到解决办法。另外我除了使用DMA接收转换值,还使用中断接收转换值,发现程序会进到中断服务函数中,可就是得不到转换值,

我认为不是我程序写错了

(11)TIMER:这个外设有三种定时器,但是我只测了基本定时器,你一定会问,为什么不测通用和高级定时器,这是因为基本定时器都有BUG,无论怎么改变
自动重装载寄存器的值,输出波形频率占空比都不变,真的找不到原因


使用特权

评论回复
木木guainv|  楼主 | 2021-6-4 14:27 | 显示全部楼层
/******************************我的main函数是这样的,测试哪个外设就把那个外设的测试函数取消注释**************************************************************/

int main(void)
{
//        test_gpio();
//        test_rcu();
//        test_misc();
//        test_exti();
//        test_can();
//        test_usart();
//        test_dma();
//        test_bitband();
//        test_i2c();
//        test_adc();
        test_basictim();
}


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

134

主题

3820

帖子

5

粉丝