本帖最后由 keyboard 于 2025-1-21 10:54 编辑
HC32L110,使用高级定时器时发现偏移地址0x70开始的四个寄存器(STFLR、HSTAR、HSTPR、HCELR)结构体定义有误,导致后续寄存器(其中包括中断标志IFR)偏移地址错误。
文件路径:HC32L110_DDL_Rev1.3.1\mcu\common\hc32l110.h
typedef struct
{
__IO uint32_t CMAF : 1;
__IO uint32_t CMBF : 1;
__IO uint32_t CMCF : 1;
__IO uint32_t CMDF : 1;
uint32_t RESERVED4 : 2;
__IO uint32_t OVFF : 1;
__IO uint32_t UDFF : 1;
__IO uint32_t DTEF : 1;
uint32_t RESERVED9 :12; -----> 应为13
__IO uint32_t VPERNUM : 3;
uint32_t RESERVED24 : 7; ----> 应为6
__IO uint32_t RSV : 1; ------> 此行删除
__IO uint32_t DIRF : 1;
} stc_adt_stflr_field_t;
由于位域总数超过了32,导致后续寄存器偏移量会顺延。
|