嵌入式C语言实战案例

嵌入式C语言实战案例

1. ERR_CODE_t ipu_power_up_then_init()

在C语言中,使用枚举类型(`enum`)定义了一组命名的整数值,这些值通常用于表示一组预定义的选项或状态码。在您提供的代码中,`ERR_CODE_t` 是一个枚举类型的别名(typedef),它定义了一系列错误代码。
typedef enum{
   
    SYS_PG_OK=0,
    GLB_RST_OK=1,
    PWR_OFF_OK,
    C10_RST_OK,
    C10_1V8_PG_ERR,
    C10_1V8_PG_OFF_ERR,
    C10_0V8_PG_ERR,
    C10_0V8_PG_OFF_ERR,
    SYS_PG_ERR,
    SYS_PG_OFF_ERR,
    GLB_RST_ERR,
    PWR_OFF_ERR,
    C10_RST_ERR,
    IPU_APP_STARTUP_ERR,
    FT_1V8_PG_ERR,
} ERR_CODE_t;

这个枚举定义了一个错误代码的类型,每个错误代码都有一个特定的名称和值。例如,SYS_PG_OK 表示系统上电正常,其值为0。
当一个函数的返回类型被定义为 ERR_CODE_t 时,这意味着这个函数将返回一个上述枚举中定义的错误代码。例如:

ERR_CODE_t ipu_power_up_then_init() {
   
    ERR_CODE_t err_code;
    // ... 函数实现 ...
    return err_code;
}

这个函数 ipu_power_up_then_init 的目的是执行某个上电和初始化过程,并根据过程的结果返回一个错误代码。函数内部可能会设置 err_code 变量来表示成功或失败,最后将这个错误代码返回给调用者。
使用 ERR_CODE_t 作为函数返回类型的好处是,它提供了清晰的错误指示,并且是类型安全的,因为函数只能返回在枚举中定义的合法错误代码。这有助于提高代码的可读性和可维护性,同时也使得错误处理更加一致和方便。

2. 有条件的延时

ERR_CODE_t wait_c10_rest_done(void){
   
	int tst_cnt = 0; // 定义一个变量,用于记录循环执行的次数
  // 循环,直到C10_RESET_DONE引脚为高电平或tst_cnt达到MAX_TST_SYS_RSTPULLUP_CNT //相当于有条件的延时
	while(!GPIO_ReadInputDataBit(PORTC_POWER, C10_RESET_DONE) && tst_cnt < MAX_TST_SYS_RSTPULLUP_CNT)  //MAX_TST_SYS_RSTPULLUP_CNT=100
  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值