首页 » 互联网 » C措辞很差学STM32会不会很难这也许是你的方法纰谬_函数_措辞

C措辞很差学STM32会不会很难这也许是你的方法纰谬_函数_措辞

神尊大人 2025-01-12 10:49:08 0

扫一扫用手机浏览

文章目录 [+]

这篇文章是紧接着上一篇的后续。

疑问二、我C措辞那么差学起来会不会很难?

C措辞很差学STM32会不会很难这也许是你的方法纰谬_函数_措辞 C措辞很差学STM32会不会很难这也许是你的方法纰谬_函数_措辞 互联网

很多人都以为,我的C措辞那么烂,学STM32会不会很难。
曾经的我也有这样的想法,那是由于还没真正的理解STM32的软件编程。

C措辞很差学STM32会不会很难这也许是你的方法纰谬_函数_措辞 C措辞很差学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实验.

标签:

相关文章

蓝牙终结者明年大年夜爆发_蓝牙_华为

华为家当链干系个股近期很受追捧。除开比较小众的卫星家当链外,紧张是两个方向:一是手机家当链。近期华为手机Mate 60 pro/M...

互联网 2025-01-14 阅读0 评论0