打印
[STM32F1]

一起学习stm32————基础篇(开发基础知识c语言)

[复制链接]
1794|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一路向北lm|  楼主 | 2017-7-21 23:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
深夜发帖,接着上次的新建工程,这次我们来了解下,要学习stm32需要知道的一些基础知识,这些对学习stm32有着重要的作用,对提升自己的能力会事半功倍哦。C 语言基础知识:C 语言知识博大精深 ,学习 STM32 这种高级别 MCU,下部分知识我们得熟练掌握:趁着夜色,我要开始加速了,大概分了以下几条:
结构体
stm32中使用了大量的结构体,这些对于初学stm32的有些同学很畏惧,比如下面一个有关于串口的结构体
typedef struct
{
uint32_tUSART_BaudRate;
uint16_tUSART_WordLength;
uint16_tUSART_StopBits;
uint16_tUSART_Parity;
uint16_tUSART_Mode;
uint16_tUSART_HardwareFlowControl;
}USART_InitTypeDef;
理解了结构体在这个例子中间的作用,在以后的开发过程中,你可以考虑将这些变量定义在结构体中,提高你的代码的可读性。
02:位操作:
  
运算符
  
含义
运算符
含义
&
按位与
~
取反
|
按位或
<<
左移
^
按位异或
>>
右移
很多寄存器的操作都需要位操作,例如下面的例子:GPIOx->BSRR = (((uint32_t)0x01) <<uines);这个操作就是将 BSRR 寄存器的第 uines 位设置为 1,提高代码的可读性。
03define
define 是 C 语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。常见的格式:#define 标识符 字符串“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。
04 extern 声名
main.c 定义的全局变量 fx u8 fx;
main()
{
fx=1;
printf("d%",fx);//fx=1
longed ();
printf("d%",fx);//fx=2
}
但是我们希望在uart.c longed(void)函数中使用变量fx,这个时候我们就需要在uart.c里面去申明变量 fx 是外部定义的了,因为如果不申明,变量fx的作用域是到不了 uart.c 文件中。
extern u8 fx;//申明变量 id 是在外部定义的,申明可以在很多个文件中进行
void longed (void)
{
fx=2;
}
uart.c 中申明变量 id 在外部定义,然后在 uart.c 中就可以使用变量 fx 了。
好了,该休息了,谢谢各位,希望对大家有所帮助,各位加油!

沙发
stm32jy| | 2017-7-22 09:56 | 只看该作者
c语言学的不是很好,特别是结构体和指针,看来要再学习下了。

使用特权

评论回复
板凳
junpeng324| | 2017-7-22 11:46 | 只看该作者
紧跟步伐,这个速度挺好,楼主辛苦了,谢谢分享。

使用特权

评论回复
地板
junpeng324| | 2017-7-22 12:57 | 只看该作者
stm32jy 发表于 2017-7-22 09:56
c语言学的不是很好,特别是结构体和指针,看来要再学习下了。

c语言看什么书好点,推荐本好的书。

使用特权

评论回复
5
adc326| | 2017-7-22 19:39 | 只看该作者
junpeng324 发表于 2017-7-22 12:57
c语言看什么书好点,推荐本好的书。

谭浩强的呗,还是不错的。

使用特权

评论回复
6
chenqiang10| | 2017-7-22 22:30 | 只看该作者
adc326 发表于 2017-7-22 19:39
谭浩强的呗,还是不错的。

我要学习C语言了,结构体根本不会。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

277

主题

3815

帖子

76

粉丝