資源簡(jiǎn)介
該代碼使用使stm32平臺(tái)成功移植CANopen協(xié)議,作從站使用

代碼片段和文件信息
#include?
#include?
#include?“canfestival.h“
#include?“timer_canfestival.h“
#include?“stm32f10x_tim.h“
#include?“l(fā)ed.h“
/**************************?Modul?variables?**********************************/
//?Store?the?last?timer?value?to?calculate?the?elapsed?time
static?TIMEVAL?last_time_set?=?TIMEVAL_MAX;
__IO?uint16_t?CCR1_Val?=?49152;
void?setTimer(TIMEVAL?value)
{
uint16_t?capture?=?0;
capture?=?TIM_GetCapture1(TIM4);
TIM_SetCompare1(TIM4?capture?+?value);
}
TIMEVAL?getElapsedTime(void)
{
uint16_t?timer?=?TIM_GetCounter(TIM4);
??/*?Calculate?the?time?difference?*/
??/*?return?timer?>?last_time_set???timer?-?last_time_set?:?last_time_set?-?timer;?*/
/*?I?think?this?should?be?fixed?to
???16?bit?substraction?*/
timer?=?timer?-?last_time_set;
return?timer;
}
/*?TIM5?configure?*/
static?void?TIM4_Configuration(void)
{
/*?時(shí)鐘及分頻設(shè)置?*/
??{
?? TIM_TimebaseInitTypeDef??TIM_TimebaseStructure;
????/*?Time?base?configuration?*/
????/*?16M?/?16?=?1us?*/
????TIM_TimebaseStructure.TIM_Prescaler?=?16-?1;
????//計(jì)數(shù)模式:向上計(jì)數(shù)
????TIM_TimebaseStructure.TIM_CounterMode?=?TIM_CounterMode_Up;
????TIM_TimebaseStructure.TIM_Period?=?0xFFFF;
????TIM_TimebaseStructure.TIM_ClockDivision?=?TIM_CKD_DIV1;
????//重新計(jì)數(shù)的起始值
????TIM_TimebaseStructure.TIM_RepetitionCounter?=?0;
????TIM_TimebaseInit(TIM4?&TIM_TimebaseStructure);
}
{
TIM_OCInitTypeDef??TIM_OCInitStructure;
/*?Output?Compare?Timing?Mode?configuration:?Channel1?*/
TIM_OCInitStructure.TIM_OCMode?=?TIM_OCMode_Timing;
TIM_OCInitStructure.TIM_OutputState?=?TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse?=?CCR1_Val;
TIM_OCInitStructure.TIM_OCPolarity?=?TIM_OCPolarity_High;
TIM_OC1Init(TIM4?&TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM4?TIM_OCPreload_Disable);
}
/*?TIM?IT?enable?*/
TIM_ITConfig(TIM4?TIM_IT_CC1?ENABLE);
??/*?TIM?enable?counter?*/
??TIM_Cmd(TIM4?ENABLE);
}
static?void?NVIC_Configuration(void)
{
????NVIC_InitTypeDef?NVIC_InitStructure;
????/*?Enable?the?TIM5?global?Interrupt?*/
????NVIC_InitStructure.NVIC_IRQChannel?=?TIM4_IRQn;
????NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority?=?0x00;
????NVIC_InitStructure.NVIC_IRQChannelSubPriority?=?0x00;
????NVIC_InitStructure.NVIC_IRQChannelCmd?=?ENABLE;
????NVIC_Init(&NVIC_InitStructure);
}
static?void?RCC_Configuration(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIOENABLE);
??/*?TIM4?clock?enable?*/
??RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4?ENABLE);
??/*?clock?enable?*/
??RCC_APB2PeriphClockCmd(?RCC_APB2Periph_GPIOA?ENABLE);
}
void?TIM4_start(void)
{
??RCC_Configuration();
??/*?configure?TIM4?for?remote?and?encoder?*/
??NVIC_Configuration();
??TIM4_Configuration();
}
void?TIM4_IRQHandler(void)
{
if?(TIM_GetITStatus(TIM4?TIM_IT_CC1)?!=?RESET)
{
TIM_ClearITPendingBit(TIM4?TIM_IT_CC1);
last_time_set?=?TIM_GetCounter(TIM4);
TimeDispatch();
// ((GPIOB->ODR?&?GPIO_Pin_0
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????????53??2014-09-09?11:19??slave_canfestival\Readme.txt
?????文件???????3092??2014-09-09?10:54??slave_canfestival\CanFestival\drivers\STM32\STM32_timer_canfestival.c
?????文件???????7872??2012-04-26?12:11??slave_canfestival\CanFestival\example\Master.c
?????文件????????497??2012-02-04?16:08??slave_canfestival\CanFestival\example\Master.h
?????文件??????14420??2013-09-10?10:12??slave_canfestival\CanFestival\example\Master_board.c
?????文件???????3048??2009-04-06?10:30??slave_canfestival\CanFestival\example\platform_config.h
?????文件???????3170??2013-10-12?14:36??slave_canfestival\CanFestival\example\Slave.c
?????文件????????502??2012-02-04?16:08??slave_canfestival\CanFestival\example\Slave.h
?????文件??????12978??2014-01-10?09:34??slave_canfestival\CanFestival\example\Slave_board.c
?????文件??????28030??2012-04-13?10:43??slave_canfestival\CanFestival\example\TestMaster.c
?????文件???????1340??2012-02-04?16:08??slave_canfestival\CanFestival\example\TestMaster.h
?????文件????????921??2012-04-06?11:46??slave_canfestival\CanFestival\example\TestMasterSlave.h
?????文件??????72796??2014-01-10?10:34??slave_canfestival\CanFestival\example\TestSlave.c
?????文件???????8547??2013-09-07?09:58??slave_canfestival\CanFestival\example\TestSlave.h
?????文件???????1471??2013-08-28?16:51??slave_canfestival\CanFestival\include\can.h
?????文件???????3714??2013-09-10?10:40??slave_canfestival\CanFestival\include\can_driver.h
?????文件??????10099??2013-09-09?17:41??slave_canfestival\CanFestival\include\data.h
?????文件???????1698??2011-12-15?13:51??slave_canfestival\CanFestival\include\dcf.h
?????文件???????6014??2014-01-08?11:22??slave_canfestival\CanFestival\include\def.h
?????文件???????3017??2011-12-15?13:51??slave_canfestival\CanFestival\include\emcy.h
?????文件???????3151??2011-12-15?13:51??slave_canfestival\CanFestival\include\lifegrd.h
?????文件???????9306??2013-09-10?10:46??slave_canfestival\CanFestival\include\lss.h
?????文件???????3115??2011-12-15?13:51??slave_canfestival\CanFestival\include\nmtMaster.h
?????文件???????1728??2011-12-15?13:51??slave_canfestival\CanFestival\include\nmtSlave.h
?????文件??????12842??2011-12-15?13:51??slave_canfestival\CanFestival\include\objacces.h
?????文件???????4075??2011-12-15?13:51??slave_canfestival\CanFestival\include\objdictdef.h
?????文件???????5047??2011-12-15?13:51??slave_canfestival\CanFestival\include\pdo.h
?????文件??????19240??2012-04-25?15:31??slave_canfestival\CanFestival\include\sdo.h
?????文件???????3845??2011-12-15?13:51??slave_canfestival\CanFestival\include\states.h
?????文件???????2184??2011-12-15?13:51??slave_canfestival\CanFestival\include\sync.h
............此處省略246個(gè)文件信息
評(píng)論
共有 條評(píng)論