【HC32L196】入门-从0开始构建程序

目的

参考官方DDL外设示例代码,重新进行组织构建,过程中熟悉hc32l196的代码结构,调用关系。
主要分为以下几部分:

  • 0001-gpio_output:使用IAR重新组织GPIO OUT代码;熟悉IAR使用,熟悉工程文件设置,了解代码导入工具
  • 0002-hc32l19x_ddl:修改库文件名;熟悉hc32l196库文件调用关系
  • 0003-uart_int:引入串口文件,调用库文件完成串口的字符输入输出;熟悉串口的代码和使用
  • 0004-bsp:引入bsp概念,将外设的初始化统一归口到bsp文件
  • 0005-printf:完成printf的串口重定向

0001-gpio_output

1. 复制 HC32L196 裸机源码

使用 gpio_output 例程文件。

HC32L19x_DDL_Rev1.2.0\example\gpio\gpio_output\source
HC32L19x_DDL_Rev1.2.0\driver
HC32L19x_DDL_Rev1.2.0\mcu\common

参考官方例程,建立文件夹
│ 0001-gpio_output
├─Common
├─Driver
├─Project
│ │ HC32L96.ewd
│ │ HC32L96.ewp
│ └─HC32L96.eww
└─User
ddl_device.h
main.c

其他文件都是源代码直接复制,Project是自己创建的文件夹

2. 通过 IAR 建立工程

使用 IAR 的 ewp 项目文件和 eww 工程文件,通过工具进行导入。

【实用工具】IAR源文件导入工具EWPtool

3. 开始编译并解决问题

  • 在 IAR 中,依次进行以下设置:
    • 选择 Options/General Options/Target/Device/HC32L19x(在 XHSC 中)。
    • Options/General Options/Library Configuration 中,将 Library 等级改为 Full,并在 CMSIS (legacy) 中勾选 Use CMSIS 5.7
  • 以上操作后,无编译错误。

0002-hc32l19x_ddl

官方自带的库中,外设库函数均以 adc.h 类似形式命名,为表示区分,统一增加hc32l19x_前缀,变成hc32l19x_adc的样式

1. 使用工具批量重命名

使用菲菲改名助手批量修改文件名

2. 更改文件内的引用名

使用vscode依次更改引用名

3. 编译

根据提示报错依次修改直至不再报错

0003-uart_int

GPIO外,串口也是一个重要的调试外设,将示例代码中串口发送部分引入,注意,示例代码是取反返回的。

一般来说,调试串口默认115200无校验,现在先以默认的9600偶校验执行

0004-bsp

设备驱动层也叫板级支持包 (Board Support Package,BSP),它包含了嵌入式系统中所有与硬件相关的代码.BSP的基本思想是把嵌入式操作系统与具体的硬件平台隔离开来也就是说,在BSP当中,把所有与硬件相关的代码都封装起来,并向上提供一个虚拟的硬件平台,而操作系统就运行在这个虚拟的硬件平台上。它使用一组定义好的编程接口来与BSP进行交互,并通过BSP来访问真正的硬件。BSP在嵌入式系统中的角色,类似于PC系统中的BIOS和驱动程序。

初步仅完成初始化程序

0005-printf

完成hc32l196的printf的串口重定向 ,printf的底层调用putchar,重写putchar即可

int putchar(int c)
{          
    while(!M0P_UART1->ISR_f.TXE);	//检查发送缓存是否为空
    return (M0P_UART1->SBUF = c);	//UARTx_SBUF 写入下一个发送数据
}

当然,成功使用的前提是做好了串口相关的配置

至此,HC32L196完成了GPIO和串口的初步配置,后续还计划将RT-Thread Nano引入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值