用STM32单片机中需要用到的C语言知识
一、基本内容
二、疑问点
1.声明变量
-
const:可创建全局常量 局部常量, 数字常量, 数组常量 结构常量.
用法:const int LIM = 50;
(源码里很少用) -
static:用来定义静态变量,静态函数
用法:static int LIM = 50;
static void SetSysClockTo24(void){ 函数体}
(源码里多用)
- const和static的区别:?
- typedef 给数据类型起别名
typedef unsigned char uint8_t //(在stdint.h中);
typedef uint8_t u8; //(在stm32f10xx.h中)
//在我们使用时直接使用u8定义变量即可
eg: u8 time=10;(可表示0~256)
- extern 变量申明
- 说明:可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编 译器遇到此变量和函数时在其他模块中寻找其定义。
- 用法:
2.预处理
- eg:
#define GPIOA_ODR_Addr (GPIOA_BASE+12) //0x4001080C
- 知识点1:#define A B .常用于定义常量,也可以指向地址。
- 知识点2:(直接放地址)
- 选择预编译
- eg
#ifdef 标识符
程序段 1
#else
程序段 2
#endif
- 编写头文件需要用
- eg
#ifndef __stdint_h
#define __stdint_h
....头文件内容
#endif
- #undef A 取消前面的定义
三、使用时注意的重点内容
1.文件结构
- 修改文件(.c .h文件)
- mian.c
- app – 应用文件
- bsp – 与外设的连接层
- device – 添加的设备
2.添加设备要做什么
- 理解设备工作原理 – 参考设备手册 (有人用过就看人家博客)
- 明确单片机与设备的通讯方式 (同上)
- IO直驱
- 串口
- SPI(硬件/软件)
- IIC(硬件/软件)
- 分配芯片管脚资源 – (芯片参考手册,开发板原理图)
- 根据通讯控制要求修改(修改文件) (开发指南)
- IO初始化 – 引脚/时钟/
- 中断管理
- 移植通讯文件
- 连接硬件调试
- 观察现象分析运行状态
- 利用keil在线调试观察变量变化
- 利用输入设备(按键,遥控器) | 输入设备(显示屏)
3.一个函数要看什么
- 功能
- 输入参数
- 输出参数