diff --git a/8F-3AW-PowerMeter/power_meter.c b/8F-3AW-PowerMeter/power_meter.c
index de03048..d1090eb 100644
--- a/8F-3AW-PowerMeter/power_meter.c
+++ b/8F-3AW-PowerMeter/power_meter.c
@@ -5,7 +5,7 @@
* @brief Voice Recognition Module Initialization Section,
including peripheral initialization and message node insertion, etc.
* @version 1.0
- * @changelog version 1.0 初始版本 2025.12.31
+ * @changelog version 1.0 初始版本 2026.1.6
******************************************************************************
* @attention
*
@@ -54,9 +54,17 @@
EleC_V_data elec_v_data;
-// 向对应寄存器写入数据 低位在低位 高位在高位
-// 共24bit,不足处用0补齐,低位先行
-// 发送数据大小限定为3个字节
+#if COULOMBMETER_SET_FUNC_ENABLE
+/**
+ * @brief 向BL0942指定寄存器写入24位数据
+ * @param addr: 寄存器地址(8位)
+ * @param reg_data: 待写入的数据缓冲区指针,需传入3个字节,低位在前、高位在后
+ * @retval 无
+ * @note 1. 数据格式:共24bit,不足位补0,低位先行发送
+ * 2. 通信协议:UART发送帧格式为[写命令(BL0942_ADDR_W)+寄存器地址+3字节数据+校验和]
+ * 3. 校验和计算:(写命令+地址+3字节数据)的低8位取反
+ * 4. 数据发送大小限定为3个字节,超出部分无效
+ */
static void coulombmeter_write_reg(uint8_t addr, uint8_t* reg_data)
{
uint8_t check_sum = 0;
@@ -77,12 +85,19 @@ static void coulombmeter_write_reg(uint8_t addr, uint8_t* reg_data)
check_sum = ~(check_sum & 0xFF);
COULOMBMETER_UART_TRANS_BYTE(check_sum);
}
+#endif
-// 从特定寄存器读取数据 芯片将通过串口接收中断返回
-// 芯片收到消息后将在150us内返回数据
-// 1s执行一次 数据在接收中断中处理
+
+/**
+ * @brief 从BL0942指定寄存器读取数据
+ * @param addr: 寄存器地址(8位)
+ * @retval 无
+ * @note 1. 通信协议:UART发送帧格式为[读命令(BL0942_ADDR_R)+寄存器地址]
+ * 2. 芯片收到读命令后,会在150us内通过UART返回4字节数据(3字节有效数据+1字节校验)
+ * 3. 建议1s执行一次该函数,返回数据在UART接收中断中处理
+ */
static void coulombmeter_read_reg(uint8_t addr)
{
// 1. 下发命令字节 BL0942_ADDR_R
@@ -94,6 +109,17 @@ static void coulombmeter_read_reg(uint8_t addr)
+
+
+/**
+ * @brief 初始化库仑计(UART5)相关硬件
+ * @param 无
+ * @retval 无
+ * @note 1. 初始化内容:UART TX/RX引脚、UART通信参数、接收中断
+ * 2. UART参数:9600波特率、8位数据位、1位停止位、无校验、全双工
+ * 3. 中断配置:UART5接收缓冲区满中断,优先级设为2
+ * 4. 初始化后清空全局数据结构体elec_v_data
+ */
void User_PowerMeter_Init(void)
{
@@ -137,7 +163,16 @@ void User_PowerMeter_Init(void)
-// 推荐1s刷新一次 最终数据将存储在全局变量elec_v_data中
+
+/**
+ * @brief 刷新库仑计的电压/电流数据(轮询读取)
+ * @param 无
+ * @retval 无
+ * @note 1. 推荐1s调用一次该函数,交替读取电压和电流有效值
+ * 2. 首次调用读取电流寄存器(Addr_I_RMS),第二次读取电压寄存器(Addr_V_RMS),循环交替
+ * 3. 触发读取后,会设置对应的等待状态,数据接收和解析在UART中断中完成
+ * 4. 最终解析后的电压/电流值存储在全局变量elec_v_data中
+ */
void User_Coulombmeter_Data_refresh(void)
{
static Bus_Mod mod = MOD_CURRENT_METER;
@@ -165,6 +200,16 @@ void User_Coulombmeter_Data_refresh(void)
+/**
+ * @brief UART5中断服务函数(库仑计数据接收处理)
+ * @param 无
+ * @retval 无
+ * @note 1. 仅处理接收缓冲区满中断(RXBuffFull)
+ * 2. 根据当前通信状态(BUS_COM_STATE)分别处理电压/电流数据
+ * 3. 数据接收格式:3字节有效数据(低位在前)+1字节校验和
+ * 4. 校验和验证通过后,转换为实际电压(V)/电流(mA)值并更新全局变量
+ * 5. 接收中断标志通过读取RXBuff寄存器自动清除,需手动清除RXBuffFull标志
+ */
void UART5_IRQHandler(void)
{
@@ -236,21 +281,13 @@ void UART5_IRQHandler(void)
}
}
-
-
+
}
FL_UART_ClearFlag_RXBuffFull(COULOMBMETER_USED_UART_NUM);
}
-
-
}
-
-
-
-
-
/************************ (C) COPYRIGHT YUWELL *****END OF FILE****/
diff --git a/8F-3AW-PowerMeter/power_meter.h b/8F-3AW-PowerMeter/power_meter.h
index fe5ac7d..6a05b86 100644
--- a/8F-3AW-PowerMeter/power_meter.h
+++ b/8F-3AW-PowerMeter/power_meter.h
@@ -51,6 +51,8 @@ extern "C" {
#define CHECK_TRANS_DONE while(FL_UART_IsActiveFlag_TXShiftBuffEmpty(COULOMBMETER_USED_UART_NUM) != FL_SET){};
#define COULOMBMETER_UART_TRANS_BYTE(x) FL_UART_WriteTXBuff(COULOMBMETER_USED_UART_NUM, x);CHECK_TRANS_DONE;
+
+#define COULOMBMETER_SET_FUNC_ENABLE (0)
/************************** 芯片内部寄存器地址定义 **************************/
diff --git a/MDK-ARM/LG048-8F-10W.uvguix.Admin b/MDK-ARM/LG048-8F-10W.uvguix.Admin
index 52f4f5d..102bfa1 100644
--- a/MDK-ARM/LG048-8F-10W.uvguix.Admin
+++ b/MDK-ARM/LG048-8F-10W.uvguix.Admin
@@ -110,8 +110,8 @@
0
- 251
- 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000037443A5C797577656C6C5F776F726B73706163655C36392DD0C2B5E7C1BFBCC6D0BEC6AC5CB2E2CAD4B4FAC2EB5C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004401000066000000000A000077040000
+ 465
+ 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000010000000100000037443A5C797577656C6C5F776F726B73706163655C36392DD0C2B5E7C1BFBCC6D0BEC6AC5CB2E2CAD4B4FAC2EB5C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF4C443A5C797577656C6C5F776F726B73706163655C36392DD0C2B5E7C1BFBCC6D0BEC6AC5CB2E2CAD4B4FAC2EB5C38462D3341572D506F7765724D657465725C706F7765725F6D657465722E63000000000D706F7765725F6D657465722E6300000000FFDC7800FFFFFFFF4C443A5C797577656C6C5F776F726B73706163655C36392DD0C2B5E7C1BFBCC6D0BEC6AC5CB2E2CAD4B4FAC2EB5C38462D3341572D506F7765724D657465725C706F7765725F6D657465722E68000000000D706F7765725F6D657465722E6800000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004401000066000000000A000077040000
@@ -1806,7 +1806,7 @@
File
2946
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000016557365725F436F756C6F6D626D657465725F496E69749600000000000000130016557365725F436F756C6F6D626D657465725F496E69740C434F554C4F4D424D4554455218454E41424C455F505245434953455F4932435F44454C415931566F696365205265636F676E6974696F6E204D6F64756C6520496E697469616C697A6174696F6E2053656374696F6E2C20027538094F325F53454E534F5208CBA2D0C2CFD4CABE196F78675F73746174655F696E666F726D6174696F6E5F6D7578043138303001380F4556454E545F3436345F434C45415207656C617073656404436F6D38125F5F37465F354B5F444953505F4150495F48166A685F73637265656E5F726566726573685F7461736B0E37665F356B5F646973705F617069155F5F37465F35465F444953505F4452495645525F48125F5F37465F35465F444953505F4150495F481137665F35665F646973705F64726976657200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000016557365725F436F756C6F6D626D657465725F496E69749600000000000000130016557365725F436F756C6F6D626D657465725F496E69740C434F554C4F4D424D4554455218454E41424C455F505245434953455F4932435F44454C415931566F696365205265636F676E6974696F6E204D6F64756C6520496E697469616C697A6174696F6E2053656374696F6E2C20027538094F325F53454E534F5208CBA2D0C2CFD4CABE196F78675F73746174655F696E666F726D6174696F6E5F6D7578043138303001380F4556454E545F3436345F434C45415207656C617073656404436F6D38125F5F37465F354B5F444953505F4150495F48166A685F73637265656E5F726566726573685F7461736B0E37665F356B5F646973705F617069155F5F37465F35465F444953505F4452495645525F48125F5F37465F35465F444953505F4150495F481137665F35665F646973705F64726976657200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
1423
@@ -1822,7 +1822,7 @@
Build
984
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000C436F756C6F6D626D65746572960000000000000001000C436F756C6F6D626D65746572000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000C436F756C6F6D626D65746572960000000000000001000C436F756C6F6D626D65746572000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -3603,12 +3603,30 @@
0
100
- 0
+ 1
..\Src\main.c
- 3
- 29
- 46
+ 0
+ 48
+ 64
+ 1
+
+ 0
+
+
+ ..\8F-3AW-PowerMeter\power_meter.c
+ 5
+ 203
+ 219
+ 1
+
+ 0
+
+
+ ..\8F-3AW-PowerMeter\power_meter.h
+ 36
+ 12
+ 55
1
0