建STM32工程注意事项
2015-12-28 18:59
176 查看
如何添加一个新功能:
1例如加入can,先将can.c添加到工程里。main.c中需要包含#include “can.h”。
2. stm32f10x_conf.h需要将//#include "stm32f10x_can.h"前面的反斜杠去掉,就是将其包含进来。
3在中断函数stm32f10x_it.c里,需要添加原先can自己的中断函数void USB_LP_CAN1_RX0_IRQHandler(void)。
4然后再配置管脚、时钟、中断向量表。
5对于用内部时钟的管脚配置:usart1使用内部时钟的管脚配置。
时钟配置:
void RCC_Configuration(void)
{
RCC_HSICmd(ENABLE);//使能内部高速晶振 ;
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);//选择内部高速时钟作为系统时钟SYSCLOCK=8MHZ
RCC_HCLKConfig(RCC_SYSCLK_Div1);//选择HCLK时钟源为系统时钟SYYSCLOCK
/* Enable GPIO clock */
RCC_APB2PeriphClockCmd(USARTy_GPIO_CLK | USARTz_GPIO_CLK | RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB, ENABLE);
#ifndef USE_STM3210C_EVAL
/* Enable USARTy Clock */
RCC_APB2PeriphClockCmd(USARTy_CLK, ENABLE);
#else
/* Enable USARTy Clock */
RCC_APB1PeriphClockCmd(USARTy_CLK, ENABLE);
#endif
/* Enable USARTz Clock */
RCC_APB1PeriphClockCmd(USARTz_CLK, ENABLE);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);//使能APB2外设GPIOB时钟
}
管脚配置,中断向量表配置跟外部时钟一样配。
1例如加入can,先将can.c添加到工程里。main.c中需要包含#include “can.h”。
2. stm32f10x_conf.h需要将//#include "stm32f10x_can.h"前面的反斜杠去掉,就是将其包含进来。
3在中断函数stm32f10x_it.c里,需要添加原先can自己的中断函数void USB_LP_CAN1_RX0_IRQHandler(void)。
4然后再配置管脚、时钟、中断向量表。
5对于用内部时钟的管脚配置:usart1使用内部时钟的管脚配置。
时钟配置:
void RCC_Configuration(void)
{
RCC_HSICmd(ENABLE);//使能内部高速晶振 ;
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);//选择内部高速时钟作为系统时钟SYSCLOCK=8MHZ
RCC_HCLKConfig(RCC_SYSCLK_Div1);//选择HCLK时钟源为系统时钟SYYSCLOCK
/* Enable GPIO clock */
RCC_APB2PeriphClockCmd(USARTy_GPIO_CLK | USARTz_GPIO_CLK | RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB, ENABLE);
#ifndef USE_STM3210C_EVAL
/* Enable USARTy Clock */
RCC_APB2PeriphClockCmd(USARTy_CLK, ENABLE);
#else
/* Enable USARTy Clock */
RCC_APB1PeriphClockCmd(USARTy_CLK, ENABLE);
#endif
/* Enable USARTz Clock */
RCC_APB1PeriphClockCmd(USARTz_CLK, ENABLE);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);//使能APB2外设GPIOB时钟
}
管脚配置,中断向量表配置跟外部时钟一样配。
相关文章推荐
- 使用shell批量删除docker容器
- POJ 2376 Cleaning Shifts(贪心,区间问题)
- Log4j.properties配置详解加示例
- NSThread注意点
- 15.Android中LinearLayout布局一些小记录
- 靠谱又快速关联android.support.vxx包源码
- eclipse如何使用Git实现双向工程
- 消除Context为空的NullPointerException异常
- Hive Shell 命令之二(表中数据的操作,出自Hive编程指南)
- iOS中UITableView的一些设置
- java各种错误汇总
- 基于JAAS实现登录
- VMware集群常见硬件配置、架构说明
- shell脚本学习(四)
- JS判断小数点后有几位
- Reactive-Native学习:查看8081端口
- CSDN首页那些与编程有关的句子
- java中线程和I/O口的主要知识点
- Java Web基础整理-JDBC编程
- jsp 用 EL 获取集合的长度