CH32V307教程 [开发环境-MRS]

最近参加了RT-Thread组织的基于RISC-V的OpenCh开发板培训,将一些教程搬运至此

CH32V307教程  [开发环境-MRS]

下载安装开发环境-MRS

建立第一个工程

编译下载

调试Debug

参考资料

下载安装开发环境-MRS

  1. 进入官网下载页面(MounRiver Studio)) 下载

MounRiver_Studio_Setup_V151.zip

CH32V307教程 [开发环境-MRS]_第1张图片

  1. 将文件解压缩后,双击 MounRiver_Studio_Setup_V151.exe 安装即可。

CH32V307教程 [开发环境-MRS]_第2张图片

Tips:如果需要修改语言问中文,只需依次点击 Help - Languange - Sampifiled Chinese - YES 即可修改为中文。

CH32V307教程 [开发环境-MRS]_第3张图片

建立第一个工程

建立工程一共有六个步骤

  1. 点击 创建MounRiver Studio

CH32V307教程 [开发环境-MRS]_第4张图片

  1. 选择工程所用芯片 CH32V307
  2. 选择 CH32V307VCT6
  3. 编辑工程名
  4. 选择工程存放路径
  5. 点击 完成

CH32V307教程 [开发环境-MRS]_第5张图片

编译下载

编译

在左侧资源项目管理器中打开 User - main.c

CH32V307教程 [开发环境-MRS]_第6张图片

此时 main.c中为MRS使用AD的样例模板生成的工程文件。

我们现在用一个控制LED闪烁的程序将其替代。

第一步:AD相关代码删除,添加GPIO口初始化函数,配置PE11PE12为输出端口。

/*******************************************************************************

* Function Name  : GPIO_INIT

* Description    : Initializes GPIOA.0

* Input          : None

* Return         : None

*******************************************************************************/

void GPIO_INIT(void)

{

  GPIO_InitTypeDef  GPIO_InitStructure;



  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

  GPIO_Init(GPIOE, &GPIO_InitStructure);

}

第二步: main() 函数中添加IO口控制代码。

/*******************************************************************************

* Function Name  : main

* Description    : Main program.

* Input          : None

* Return         : None

*******************************************************************************/

int main(void)

{

    u16 i=0;



    Delay_Init();

    USART_Printf_Init(115200);

    printf("SystemClk:%d\r\n",SystemCoreClock);



    GPIO_INIT();



    while(1)

    {

        Delay_Ms(250);

        GPIO_WriteBit(GPIOE, GPIO_Pin_11, (i==0) ? (i=1) : (i=0));  //使用条件表达式的值

        GPIO_WriteBit(GPIOE, GPIO_Pin_12, (i==1) ? 0 : 1);

    }

}

第三步:点击 编译 检查代码是否存在语法错误。

CH32V307教程 [开发环境-MRS]_第7张图片

 控制台 中出现如下提示,表示编译成功。

CH32V307教程 [开发环境-MRS]_第8张图片

Tips:如果出现语法错误,会在 控制台 中显示错误来源。双击红色报错部分,可以定位到错误源。并且在错误源的行号前面出现一个红色的X

CH32V307教程 [开发环境-MRS]_第9张图片

下载

当代码编译成功之后,在工程目录下的OBJ目录下会生成以工程名命名的.HEX文件,连接好开发板后点击 下载 即可将HEX文件下载到芯片的Flash中。

点击 下载 旁边的向下箭头可以给进入 下载配置

在下载配置菜单下,可以配置下载的芯片型号、编程地址、目标文件,还可以对芯片的读保护进行加密和解密操作。对于下载的过程可以选择全片擦除、校验、复位(复位勾选即表示在下载完成后芯片会自动复位)

CH32V307教程 [开发环境-MRS]_第10张图片

 控制台 中出现如下提示,表示下载成功。

CH32V307教程 [开发环境-MRS]_第11张图片

调试Debug

为了了解程序的运行过程,以及在运行过程中各个变量、寄存器的运行状态我们经常使用Debug来运行程序。编译完成后,插接好开发板,点击Debug按键,软件将进入Debug模式。

成功进入Debug模式之后,MRS将进入Debug界面。在该界面下,程序指针将跳转到启动代码的第一行,等待运行。

CH32V307教程 [开发环境-MRS]_第12张图片

如果我们需要让程序在执行某段代码时停止,只需要在需要停止的行前面双击打上断点。

CH32V307教程 [开发环境-MRS]_第13张图片

点击运行,程序将会在第一个断点处停止。

此时我们可以通过 窗口-显示视图 的相应的窗口观察相关数据,可以选择的窗口如下:

CH32V307教程 [开发环境-MRS]_第14张图片

举例

  1. 假如我们需要观察 GPIOE 相关寄存器的状态。选择外设(Perpherals) ,在里面找到GPIOE,勾选上。

CH32V307教程 [开发环境-MRS]_第15张图片

即可在内存窗口中观察GPIOE相应的寄存器现在的状态。

CH32V307教程 [开发环境-MRS]_第16张图片

展开OUTDR,该寄存器是控制端口输出值,点击运行,每次运行后发现ODR11ODR12会交替变为01。它们分别对应了GPIOE11E12的输出值。

CH32V307教程 [开发环境-MRS]_第17张图片

  1. 假如我们对于这行代码中 (i==0) ? (i=1) : (i=0) 这个表达式的值不理解时,我们可以通过选择 窗口-显示视图-表达式打开表达式窗口,并将代码中 (i==0) ? (i=1) : (i=0) 添加到窗口,观察该表达式的值。

CH32V307教程 [开发环境-MRS]_第18张图片

在调试时如果需要单步运行,还可以按需选择单步进入、单步跳过、单步返回按键进行单步调试,对于理解代码,调试代码起到事半功倍的效果。

你可能感兴趣的:(嵌入式,单片机,stm32,嵌入式硬件,RISV-V)