这篇文章是紧接着上一篇的后续。
疑问二、我C措辞那么差学起来会不会很难?
很多人都以为,我的C措辞那么烂,学STM32会不会很难。曾经的我也有这样的想法,那是由于还没真正的理解STM32的软件编程。

用于STM32编程的措辞有三种分别是汇编,C措辞和C++。实在每一个STM32程序项目都利用了汇编,STM32的配置文件便是利用汇编措辞编写的,但是平时我们做开拓的时候一样平常不用去管他,平时利用最多得的还是C措辞,C++的也有但很少人用。STM32的开拓办法也是有三种分别是寄存器办法,库函数办法和寄存器库函数稠浊办法。8051的单片机便是以寄存器的办法来编程的。而STM32实在也都因此寄存器的办法来编程的,但是STM32芯片内有几百个寄存器,如果以这种办法来开拓的话,每次都要找资料查看每一个寄存器的配置方法。这样的话效率就慢了许多,以是就有了库函数的开拓办法。什么是库函数?先阐明什么是函数吧,函数也是C措辞的一个知识点,当初我在学C措辞的时候,一开始我也不知道什么是函数,大概是老师没说清楚,以是不理解,如果理解了就知道C措辞中的函数也不过如此。下面举几个例子就明白了。比如说现在有两个未知数x1和x2我要把两个数相乘再加10。用数学表达便是:x1x2+10=结果
不用函数的写法:
Void main(void)
{
//先定义一个变量,用来保存打算结果
Int n=0;
n=x1x2+10;
}
用函数的写法:
先定义一个函数,函数的浸染是要打算两个未知数。然后得到结果。那么就要函数返回一个数。
函数为:
int jisuan(int x,inty)
{
return x1x2+10;
}
//主函数,便是程序运行的开始。
void main(void )
{
Int n=0; //定义一个变量用来保存结果
n=jisuan(x1,x2); //这是函数的调用,这样就得到结果了。
}
用函数的好处便是,我不须要知道你里面的打算过程,我只要知道我把值放进去就可以得到我须要的结果了。
在C措辞中常常会用到printf();函数,这个函数的浸染便是可以把我们想要知道的东西输出又或者叫打印。你知道怎么去用这个函数,但是你不用知道它里面做了什么事情,便是这个道理。
回到之前哪里,所谓的库函数便是把配置不同的寄存器的过程代码用函数包装起来,把这些函数整理到一个文件里面就成了库。就叫库函数。
以这种办法开拓,虽然看起来代码很多,但是很多东西都是有固定的一些参数,并不须要我们自己去想。给一个STM32引脚配置的例子就知道了:
void LED_Init(void)//这是一个函数,浸染是把STM32利用到的引脚配置的代码段包装起来。
{
//这是一个声明,跟其他的哪些变量声明是一样的。
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);//使能PA,PD端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速率为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化
GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PD.2 端口配置, 推挽输出
GPIO_Init(GPIOD, &GPIO_InitStructure); //推挽输出 ,IO口速率为50MHz
GPIO_SetBits(GPIOD,GPIO_Pin_2); //PD.2 输出高
}
上面这段代码的内容都不用自己写,把其他地方的复制过来把参数变动一下就可以了。下面这段代码便是全体实验的运行代码:
int main(void)
{
delay_init(); //延时函数初始化,便是一些配置的代码段。
LED_Init(); //这个便是上面的那个函数,在这里利用,高大上的叫法叫函数的调用,代码运行到这里的话就会跑到上面哪里运行哪些代码段
while(1)
{
LED0=0;
LED1=1;
delay_ms(300); //延时300ms
LED0=1;
LED1=0;
delay_ms(300);//延时300ms
}
}
以是说真正自己要写的实在很少。不要被他的外不雅观所欺骗了,以为C措辞差很难学。
我以为知道以下几个C措辞的知识点就可以完成根本的STM32的实验:
要知道C措辞实行的开端。所有的C措辞程序都包含main()函数(什么是函数待会再阐明)。无论多么繁芜的程序都是从main()函数开始实行。以是我们在看一段代码的时候可以先从main()函数开始一步一步往下看,就知道它走的每一步都做了什么事情。
要知道C措辞量意思。无非便是常量跟变量,而常用的变量便是整型(int)字符型(char),浮点型(float)这几个。实在知道有这个东西就可以了,多用几遍记住了。
C措辞在于理解,不在于去世记硬背。学好C措辞就像玩一个闯关游戏,你首先要先理解一下规则,然后就尽情的闯关,一开始输了,没紧要,重新再来,由于你有无数次复活的机会。
学好STM32也是在于理解,理解别人怎么利用哪些库函数。要理解配置的完全流程。很多的STM32开拓都不是闭卷考试,以是都是可以相互参考,相互复制。
这些都是我本人的学习履历和学习方法,别人适不适那就不好说了。如果以为有用,请收藏加关注,后期会以我的方法教你们做STM32实验.