STM32F4库函数开发的一些小套路
来源:互联网 发布:澳门日报电子版软件 编辑:程序博客网 时间:2024/04/28 19:25
STM32F4库函数开发的一些小套路
使用过一段时间STM32库函数的人应该都会发现,使用库函数开发存在一些套路。我总结一点我发现的小套路。
初始化的小套路
通常而言,初始化基本包含了三个部分:使能时钟,配置相关寄存器,使能。不过很多初始化不止这三个步骤,例如:
外部中断:
① 使能I/O口时钟 RCC_AHB1PeriphClockCmd(GPIOx, ENABLE);
配置相关寄存器 GPIO_Init(GPIOx, &GPIO_InitStructure);
② 开启SYSCFG时钟。只要使用到了外部中断,都必须打开SYSCFG时钟。
将GPIO与中断映射起来。
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSourceX );
③ 初始化线上中断,设置中断条件
EXTI_Init(&EXTI_InitStructure);
④ 配置中断分组(NVIC),使能中断
NVIC_Init(&NVIC_InitStructure);
⑤ 便携中断服务函数
EXTIx_IRQHandler();
在中断服务函数中,必须清除中断标志位
EXTI_ClearITPendingBit(EXTI_LineX);
⑥ 在主函数中设置系统中断优先级分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
配置寄存器的小套路
一般来说,初始化结构体类型都是这样:XXXX_InitTypeDef 例如:GPIO_InitTypeDef
同时我们也习惯将初始化结构体命名为:XXXX_InitStructure;
初始化结构体各个成员变量的功能命名同样有规律,例如:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //选中GPIOE2GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //普通输入模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //100MGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化GPIOE2
可以看见,功能直接加在成员变量后面:
GPIO_Mode_XX //AF为复用,OUT为输出,IN为输入,AN为模拟GPIO_PuPd_XX //UP为上拉,DOWN为下拉,NOPULL为浮空
函数命名的小套路:
STM32F4库函数的可读性很强,所以函数名,参数,返回值一样有规律:
① 函数名:XXXX_Init()
功能: 初始化
返回值:无
参数: 至少包含初始化结构体
例子: GPIO_Init(GPIOx, GPIO_InitStructure);
② 函数名:XXXX_GetFlagStatus()
功能: 检查外设事件标志位
返回值:SET或者RESET
参数: 标志名
例子: USART_GetFlagStatus(USART, USART_FLAG_RXNE);
③ 函数名:XXXX_GetITStatus()
功能: 检查中断标志位
返回值:SET或者RESET
参数: 中断标志名
例子: EXTI_GetITStatus(EXTI_Line3);
④ 函数名:XXXX_ClearITPendingBit();
功能: 清除中断标志位
返回值:无
参数: 中断标志
例子: EXTI_ClearPendingBit(EXTI_Line3);
⑤ 函数名:XXXX_Cmd()
功能: 使能或关闭
返回值:无
参数: 想要控制的外设名和ENABLE或者DISABLE
例子: TIM_Cmd(TIM3, ENABLE);
- STM32F4库函数开发的一些小套路
- OC里的一些小套路
- 小用stm32f4-CAN控制器(使用库函数)
- 关于用Delphi开发的一些基本的套路
- platform驱动开发套路、DM9000的一些分析
- STM32F4 RTC【使用库函数】
- STM32F4 ADC采集数据的DMA数据传输【库函数操作】
- 理财的几个小套路
- 一些框架的设计套路
- 5个套路看懂小程序开发
- 进度。常用的开发套路。
- Linux驱动开发的套路
- STM32F4之ADC1【库函数操作】
- STM32F4之USART【库函数操作】
- WEB开发的套路——数据流向的套路
- WEB开发的套路——WEB工程的套路
- STM32F4-Discovery资料汇总及stm32库函数开发指南 stm32F407版
- STM32F4 开发笔记4: UART的使用方法
- 测试分析设计技术工程方法全景图
- 黑盒测试经验
- SYS_CONNECT_BY_PATH(column,'char') 结合 start with ... connect by prior
- 第五周项目9,三色球问题
- android7.0 编译问题及解决
- STM32F4库函数开发的一些小套路
- 虚拟机跑centos 无法ping通问题解决思路
- ORACLE 变量定义
- oracle中操作数据
- oracle中事务处理
- oracle 函数
- jsp页面日期格式化
- 视图
- js中array-like object