資源簡介
資料是用STM32F103單片機編寫的CAN總線通信程序,程序在開發板上調試通過。利用固件庫開發的。寄存器版本后續后上傳提供學習。

代碼片段和文件信息
#include?“stm32f10x_lib.h“
#include?“platform_config.h“
typedef?enum?{FAILED?=?0?PASSED?=?!FAILED}?TestStatus;
vu32?ret;?
volatile?TestStatus?TestRx;
ErrorStatus?HSEStartUpStatus;
/*?Private?functions?---------------------------------------------------------*/
void?RCC_Configuration(void);
void?GPIO_Configuration(void);
void?NVIC_Configuration(void);
TestStatus?CAN_Polling(void);
TestStatus?CAN_Interrupt(void);
int?main(void)
{
#ifdef?DEBUG
??debug();
#endif
??/*?System?Clocks?Configuration?*/
??RCC_Configuration();
??/*?NVIC?Configuration?*/
??NVIC_Configuration();
??
??/*?GPIO?ports?pins?Configuration?*/
??GPIO_Configuration();
??/*Turn?Off?LEDs*/
??GPIO_SetBits(GPIO_LED?GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
??/*?CAN?transmit?at?100Kb/s?and?receive?by?polling?in?loopback?mode?*/
??TestRx?=?CAN_Polling();
??if?(TestRx?==?FAILED)
??{
????/*?Turn?on?led?connected?to?GPIO_LED?pin8?(LD3)?*/
????GPIO_ResetBits(GPIO_LED?GPIO_Pin_8);
??}
??else
??{
????/*?Turn?on?led?connected?to?GPIO_LED?pin6?(LD1)?*/
????GPIO_ResetBits(GPIO_LED?GPIO_Pin_6);
??}
??/*?CAN?transmit?at?500Kb/s?and?receive?by?interrupt?in?loopback?mode?*/
??TestRx?=?CAN_Interrupt();
??if?(TestRx?==?FAILED)
??{
????/*?Turn?on?led?connected?to?GPIO_LED?pin9?(LD4)?*/
????GPIO_ResetBits(GPIO_LED?GPIO_Pin_9);?
??}
??else
??{
????/*?Turn?on?led?connected?to?GPIO_LED?pin7?(LD2)?*/
????GPIO_ResetBits(GPIO_LED?GPIO_Pin_7);
??}
??
??while?(1)
??{
??}
}
void?RCC_Configuration(void)
{
??/*?RCC?system?reset(for?debug?purpose)?*/
??RCC_DeInit();
??/*?Enable?HSE?*/
??RCC_HSEConfig(RCC_HSE_ON);
??/*?Wait?till?HSE?is?ready?*/
??HSEStartUpStatus?=?RCC_WaitForHSEStartUp();
??if(HSEStartUpStatus?==?SUCCESS)
??{
????/*?Enable?Prefetch?Buffer?*/
????FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
????
????/*?HCLK?=?SYSCLK?*/
????RCC_HCLKConfig(RCC_SYSCLK_Div1);?
??
????/*?PCLK2?=?HCLK?*/
????RCC_PCLK2Config(RCC_HCLK_Div1);?
????/*?PCLK1?=?HCLK?*/
????RCC_PCLK1Config(RCC_HCLK_Div1);
????/*?Select?HSE?as?system?clock?source?*/
????RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);
????/*?Wait?till?HSE?is?used?as?system?clock?source?*/
????while(RCC_GetSYSCLKSource()?!=?0x04)
????{
????}
??}
??
??/*?GPIOA?and?GPIO_LED?clock?enable?*/
??RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA?|?RCC_APB2Periph_GPIO_LED?ENABLE);
??/*?CAN?Periph?clock?enable?*/
??RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN?ENABLE);
}
void?GPIO_Configuration(void)
{
??GPIO_InitTypeDef?GPIO_InitStructure;
??/*?Configure?GPIO_LED?pin6?pin7?pin8?and?pin9?as?Output?push-pull?*/
??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_6?|?GPIO_Pin_7?|?GPIO_Pin_8?|?GPIO_Pin_9;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;
??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
??GPIO_Init(GPIO_LED?&GPIO_InitStructure);
??/*?Configure?CAN?pin:?RX?*/
??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_11;
??GPIO_InitStructure.G
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4608??2009-07-10?22:21??STM32_CAN\CAN.opt.bak
?????文件????????194??2009-07-08?04:45??STM32_CAN\CAN.plg
?????文件???????4504??2009-07-08?04:47??STM32_CAN\CAN.Uv2.bak
????.......?????71563??2018-08-29?15:36??STM32_CAN\CAN.uvgui.Administrator
????.......?????22245??2018-08-29?15:36??STM32_CAN\CAN.uvopt
????.......?????21447??2018-08-29?15:18??STM32_CAN\CAN.uvproj
?????文件??????20689??2010-11-13?05:38??STM32_CAN\CAN_CAN.dep
?????文件???????4607??2009-07-08?04:47??STM32_CAN\CAN_Opt.Bak
?????文件?????????70??2009-07-08?04:45??STM32_CAN\CAN_Target?1.dep
?????文件??????????0??2009-07-08?04:44??STM32_CAN\CAN_Uv2.Bak
????.......????164480??2010-11-13?05:40??STM32_CAN\CAN_uvopt.bak
????.......?????20746??2010-11-02?08:33??STM32_CAN\CAN_uvproj.bak
?????文件???????2225??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\cortexm3_macro.h
?????文件??????18854??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_adc.h
?????文件???????6911??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_bkp.h
?????文件??????12279??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_can.h
?????文件???????1881??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_crc.h
?????文件???????9598??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_dac.h
?????文件???????2859??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_dbgmcu.h
?????文件??????17974??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_dma.h
?????文件???????5776??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_exti.h
?????文件??????13996??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_flash.h
?????文件??????19041??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_fsmc.h
?????文件??????14820??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_gpio.h
?????文件??????16213??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_i2c.h
?????文件???????3414??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_iwdg.h
?????文件???????3200??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_lib.h
?????文件??????28290??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_map.h
?????文件??????19198??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_nvic.h
?????文件???????3865??2008-09-22?21:19??STM32_CAN\Source\FWLib\inc\stm32f10x_pwr.h
............此處省略49個文件信息
評論
共有 條評論