
最近完成了一个F030项目的试产,回想整个过程,深刻感觉到实际开发项目与开发板开发的不同。也发现了一些疑惑,希望能有高手能指教方法. 1.项目开始时,也是做了一些规划的。把不同的功能模块单独做成一个文件,并且有各自的头文件。但是越往后做,发现跨文件的变量也越多。于是好多 EXTERN 出现了。虽然能行,但是感觉非常杂乱,不好控制,有时为了查一个变量就需要看好几个文件。 2.逻辑错误的问题,前后逻辑不一致,甚至是一个笔误也会形成一个逻辑错误问题。几乎用了写代码一倍的时间重读推敲逻辑,也花了相当的时间实际运行测试,还是不能保证全部找出了问题。 3.关于程序流程图,没看到人展示过这个,所以也不知道别人做的能精细到什么程度。感觉做得太粗略就没什么作用,精细一点又做不来。大家可以教我。' r0 K2 ?" y' A Y% w: K- I 以上,大家可以讨论指点。 |
对于问题12 D' U; P( q' z0 x& N
我的解决方法是:封装一些函数,用来传递或处理这些数据,减少跨文件的变量。
如:
A变量在甲文件中,乙文件需要设置它的值+ j& Y' B/ p0 t+ _4 Z* @
我会:
void changeA(uint8_t value)
{- W7 x3 A+ C }# m _+ ?6 o
A = value;
}
数据传输也一样,甚至可以用指针: i) `4 l0 e' e3 A/ O
uint8_t getA(void)% z( d6 v6 Q1 m# W4 R9 b. W
{4 A9 f; ?0 S+ D& k
return A;# C! u$ f* h+ v$ |
}
( L4 n0 t# A( B( d
问题2,共同情况,debug比编程时间还长。我只能分多个部分验证。9 L: d+ J3 e9 U0 y) D |
编写的时候,会考虑更多以后重用方便问题。' M) S& q9 a7 E1 J/ Y* p
0 ~$ ~6 ~, V1 X4 ]
问题3,我只是大概画个大概流程(功能块),用于理顺思路,甚至只用思维导图。毕竟单片机不算太复杂。
& P/ H: F/ [7 u o8 O( x. U1 E
如果觉得回答还可以,请支持“我的ST”,谢谢。
嗯,你的办法是可以,就是有点消耗资源。支持你。
谢了!
有时候标准化会减少很多编程上的差错。
不差这点资源,如果实在太紧张,就逐步改。
https://www.stmcu.org.cn/module/forum/thread-622444-1-2.html5 M. a5 M& i) K2 @