微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM32编程的模块化

STM32编程的模块化

时间:10-02 整理:3721RD 点击:
STM32编程的模块化,怎么实现的?  编写一般的程序需要哪些模块。q
  求大神帮忙解答。

http://bbs.elecfans.com/jishu_264943_1_1.html

和单片机编程差不多,参考下

主要是misc.c文件,stm32f10x_rcc.c文件,stm32f10x_gpio.c,基本上这三个加个中断文件,就可以控制简单的流水灯程序了

问的很抽象,一般模块根据功能来划分。

问得真笼统啊!

进来学习一下!

模块化编程,可以理解为按照功能划分模块。简单一点的是程序需要完成几个功能,就会有几个c文件来构成。

如何进行模块化编程:
一、关于全局变量的定义、声明、引用:
方法1:
在某个c文件里定义全局变量后,在其它c文件要用,则在要用c文件里用extern进行声明。说来轻巧但还是很多同学会出问题。请看下面注意事项方可解决!
注:
(1)在定义全局变量时可同时将其初始化
(2)在用extern声明时不能再初始化,否则编译器报错
举例:有两个c文件分别为one.c和two.c,two中要用到one中的全局变量N,怎么办?
答案:在one.c中定义且初始化:u8 N = 0;
           再在two.c中声明:extern u8 N;(注:此处不能加= 0)

方法2:
同样对于方法1中的例子,我推荐采用方法2。
答案:在one.c中定义且初始化:u8 N = 0;
           再在one.h中用extern声明:extern u8 N;(注:此处不能加= 0)           
           最后在two.c中包含one.h:#include "one.h"     
由于方法2的可移植性较方法一要强,故采用2较好!
对方法2的总结为:全局变量的定义和初始化放在c文件中,声明放在对应的h文件中。 且要注意h文件里应仅有
相应c文件里的函数和变量的声明,和相应c文件无关的东西不应该有。

二、关于头文件的包含:
        头文件的包含就比较简单了:在相应c文件里一一包含所需的h文件即可。但千万不要将这些头文件全部放在c文件的相应头文件里,虽然这样会使c文件仅包含了一个头文件,看起来比较简洁,但这样会影响它的h文件的“纯洁性”。              
        在此提醒下新手们:要将c文件和其对应的h文件看成一体,即它们互相有着紧密联系;移植时,将它们同时搬走就行!


三、关于结构体类型的定义:
        1、若结构体类型只需要在某个c文件中使用,那么就在相应c文件里定义该结构体即可。
        2、若结构体类型要在多个c文件中使用,那么就应该在头文件中定义该结构体,再在要用它的文件中包含结构体定义 所在的头文件即可。

好信息啊 ,定期 达到

http://www.tudou.com/programs/view/OJ-GrQg2tI4/

http://www.tudou.com/programs/view/OJ-GrQg2tI4/

谢谢耐心的解答。

谢谢你的连接。

谢谢回答,我还没来得及用,你说的方法。

来学习了,大家支持

详细可以参考单片机编程规范手册。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top