{{遇到问题. docx (uploading. . . ) }}
看你的图片, 是 CPU 异常了, 但是你使用的是 IIC , 这就有点不是太好理解, mlx90640 无奈手上暂时没有 mlx90640 这个, 你试试 IIC 驱动 EEPROM 可以么
其他设置, 读取都好使, 说明 IIC 是可以的,
status = MLX90640_DumpEE (MLX90640_ADDR, eeMLX90640) ; //读取像素校正参数
// if (status ! = 0)
printf ("\r\nload system parameters error with code: %d\r\n", status) ;
这一句是读取 MLX90640 的 EEPROMM, 数据和我用 32 读出来的一样
就是下一句, 解析参数, 一进就卡死,
r0: ffffffff r1: ffffffff r2: ffffffff r3: ffffffff r4: 00002a74
r5: 00000043 r6: 00000000 r7: 200101ac r8: 497d3257 r9: 51365486
r10: 06c8fb4e r11: 4f56218f r12: ffffffff r13: c002200f r14: 1fffe6d4
r15: 20003188
epsr: e4ffc3c1
epc : fffffffe
CPU Exception : 6
r0: ffffffff r1: ffffffff r2: ffffffff r3: ffffffff r4: 00002a74
r5: 00000043 r6: 00000000 r7: 200101ac r8: 497d1257 r9: 51365482
r10: 06485b4e r11: 4e56218f r12: ffffffff r13: c002200f r14: 1fffe6d4
r15: 20003188
epsr: e4ffc3c1
epc : fffffffe
报错类型 6,
我把这个函数内部注释, 只留个空壳
int MLX90640_ExtractParameters (uint16_t eeData, paramsMLX90640 mlx90640)
{
int error = CheckEEPROMValid (eeData) ;
if (error == 0)
{
// ExtractVDDParameters (eeData, mlx90640) ;
// ExtractPTATParameters (eeData, mlx90640) ;
// ExtractGainParameters (eeData, mlx90640) ;
// ExtractTgcParameters (eeData, mlx90640) ;
// ExtractResolutionParameters (eeData, mlx90640) ;
// ExtractKsTaParameters (eeData, mlx90640) ;
// ExtractKsToParameters (eeData, mlx90640) ;
// ExtractAlphaParameters (eeData, mlx90640) ;
// ExtractOffsetParameters (eeData, mlx90640) ;
// ExtractKtaPixelParameters (eeData, mlx90640) ;
// ExtractKvPixelParameters (eeData, mlx90640) ;
// ExtractCPParameters (eeData, mlx90640) ;
// ExtractCILCParameters (eeData, mlx90640) ;
// error = ExtractDeviatingPixels (eeData, mlx90640) ;
}
return error;
}
下进去, 也报错,
Try 2000000 baud download file . . .
Wait for the chip to be ready . . .
Start the download . . .
Download "E: /ST7735/W806 _FUBEN_gai_iic/bin/W806/W806. fls" file success!
CPU Exception : 7
r0: 00000000 r1: 00000000 r2: e000e100 r3: 2000318c r4: 00002a74
r5: 00000043 r6: 00000000 r7: 200101ac r8: 497d1257 r9: 51365482
r10: 06c8fb4e r11: 4e56218f r12: 00000007 r13: c002200f r14: 1fffe6d4
r15: 783c2000
epsr: e0000341
epc : 783c2000
使用 W806 内部 IIC, 可以初始成功
返回 0, 表示设置帧率成功, 模式成功
读取校正参数后, 需要校正参数, 一调用, 就跑死
注释掉函数内部, 留着空函数
调用
跑死, 跑死代码由 6 变为 7
复制了副本, W806 _FUBEN_gai_iic, 对 W806 的 IIC 和开源代码的软件 IIC 做了匹配, 然后初始化也不成功了, 改回去
可以初始化了