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