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