让人吐血Case的debug的检讨

来源:本站
导读:目前正在解读《让人吐血Case的debug的检讨》的相关信息,《让人吐血Case的debug的检讨》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《让人吐血Case的debug的检讨》的详细说明。
简介:这是最近一个Case的深刻检讨,这个CASE中我负责MCU这一块.程序主要分位两部分,一部分工作是控制NFC模块,通过他与外界通讯,发送与接受数据,通讯协议软件模拟IIC, 另一部分的工作是与硬盘驱动器通讯,发送与接受数据,通讯协议软件模拟SPI, 其他就是输出LED状态指示.

这是最近一个Case的深刻检讨,这个CASE中我负责MCU这一块.程序主要分位两部分,一部分工作是控制NFC模块,通过他与外界通讯,发送与接受数据,通讯协议软件模拟IIC, 另一部分的工作是与硬盘驱动器通讯,发送与接受数据,通讯协议软件模拟SPI, 其他就是输出LED状态指示. 首先要自我批评,对这个case评估不够准确,尤其是新出来的东西,有用的资料稀少,只有一个DATASHEET和一个简易的寄存器配置Demo程序;第二 英语能够不够,英文资料略读占用时间太长,口语能力不行,不能直接对话;第三在项目经理对这个CASE不能掌控时,没有积极的主动提供援助,看着项目延误太多时间;第四MCU不能自己选择,导致工具不全,采用现有工具开发,然后再移植到指定MCU,不同MCU差异,增加debug时间,效率不高.

嫁接也会出问题--平台移植, 程序虽然都是采用C开放,但是两种MCU他们是不用的体系.IIC的协议,在现有工具的平台上调试正常work, 但是换到指定MCU时,却出现了**.指定的MCU没有仿真平台只能烧录实测.一个是读数据正常,第二个写数据正常,第三个是都数据也正常,第四个还是都数据,在它结束时,送停止信号时SDA数据线出现了不能出高电平 My good !

最终修改ACK的程序,把他解决了.

这是有问题的

// IICwrite ack

SDASETOUT

SCLOUT_0

Delay_Us(5);

SDAOUT_0

Delay_Us(5);

SCLOUT_1

Delay_Us(5);

//IIC NO ack

SDASETOUT

SCLOUT_0

Delay_Us(5);

SDAOUT_1

Delay_Us(5);

SCLOUT_1

Delay_Us(5);

这是修改后的

// IICwrite ack

SCLOUT_0

Delay_Us(5);

SDASETOUT

SDAOUT_0

Delay_Us(5);

SCLOUT_1

Delay_Us(5);

//IIC NO ack

SCLOUT_0

Delay_Us(5);

SDASETOUT

SDAOUT_1

Delay_Us(5);

SCLOUT_1

Delay_Us(5);

万分之一的概率事件,并不是说要一万次才会出现一次. 因为指定的MCU只能烧录实测, 多次重复使用后socket出行的**,突然有个IO出现的接触不良.示波器监控的外部PIn的电平都正常,有问题的IO正好是一个输入PIN, 外部电路出现高低变化,但是因为接触不良,MCU不能捕捉到外部电平变化.更换MCU不能解决,使用示波器直接点到MCUpin才发现这个问题.天啊,怎么会有如此巧的事情.

提醒:《让人吐血Case的debug的检讨》最后刷新时间 2024-03-14 01:04:41,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《让人吐血Case的debug的检讨》该内容的真实性请自行鉴别。