91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .zip
    金幣: 2
    下載: 2 次
    發布日期: 2021-06-25
  • 語言: 其他
  • 標簽: STM32??MCP2515??CAN??SPI2??

資源簡介

STM32下的MCP2515物理層驅動代碼,僅用于研究和學習,代碼是從相關項目工程里扣出來的,僅測試擴展幀。如有編譯不過的問題或侵權問題,請聯系我。波特率默認50K,CS-PB12, MISO-PB14,SCK-PB13 and MOSI-PB15,使用SPI2 + DMA,未使用MCP2515的中斷引腳。

資源截圖

代碼片段和文件信息

#include?“Physical_Mcp2515.h“
#define?SPI1_DR_Address????0x4001300C
#define?SPI2_DR_Address????0x4000380C
#define?BUFFERSIZE?????????20
#define?CRCPOLYNOMIAL??????7

unsigned?char?PhyMcp2515_BufferRx[BUFFERSIZE];
unsigned?char?PhyMcp2515_BufferTx[BUFFERSIZE];
MCP2515MSG?st_phyMcp_canMsg0;
MCP2515MSG?st_phyMcp_canMsg1;

unsigned?short?us_phyMcp2515_dmaErrFlag;
unsigned?short?us_phyMcp2515_errStep;
unsigned?char?uc_phyMcp2515_commFlag;//通訊正常1
unsigned?char?uc_PhyMcp2515_canIntf;
unsigned?char?uc_phyCan_resetFlag;

//調用此函數初始化即可。波特率50K,CS-PB12?MISO-PB14,SCK-PB13?and?MOSI-PB15。使用SPI2,未使用MCP2515的中斷引腳。
void?PhyMcp2515_PeriphInit(void)
{
PhyMcp2515_GpioConfig();
PhyMcp2515_PeriphRegisterConfig();
//PhyMcp2515_McpConfig(100);
PhyMcp2515_McpConfig(50);
}

void?PhyMcp2515_PeriphRegisterConfig(void)
{
PhyMcp2515_Spi2RegisterConfig();
PhyMcp2515_DmaRegisterConfig();
//PhyMcp2515_ExtiLine12Config();?采用查詢方式接收
SPI_SSOutputCmd(SPI2?DISABLE);
/*?Enable?SPI2?DMA?Tx?request?*/
SPI_I2S_DMACmd(SPI2?SPI_I2S_DMAReq_Tx?ENABLE);
/*?Enable?SPI2?DMA?Rx?request?*/
SPI_I2S_DMACmd(SPI2?SPI_I2S_DMAReq_Rx?ENABLE);
/*?Enable?SPI2?*/
SPI_Cmd(SPI2?ENABLE);
}

void?PhyMcp2515_GpioConfig(void)
{
GPIO_InitTypeDef?GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB?|?RCC_APB2Periph_GPIOD?|?RCC_APB2Periph_AFIO?ENABLE);

????????//for?CS?pin
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_Init(GPIOB?&GPIO_InitStructure);
/*?Configure?SPI2?pins:?SCK?and?MOSI?*/
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_13?|?GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP;
GPIO_Init(GPIOB?&GPIO_InitStructure);

/*?Configure?SPI1?pins:?MISO?*/
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_14;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB?&GPIO_InitStructure);

//for?interrupt?pin?pc12
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING;
//GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_Init(GPIOC?&GPIO_InitStructure);
}

void?PhyMcp2515_Spi2RegisterConfig(void)
{
SPI_InitTypeDef????SPI_InitStructure;
????
????RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2?ENABLE);
/*?SPI2?configuration?*/
SPI_InitStructure.SPI_Direction?=?SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode?=?SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize?=?SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL?=?SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA?=?SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS?=?SPI_NSS_Soft;
????SPI_InitStructure.SPI_CRCPolynomial?=?CRCPOLYNOMIAL;
SPI_InitStructure.SPI_BaudRatePrescaler?=?SPI_BaudRatePrescaler_4;//設置波特率72/2/4
????//SPI_InitStructure.SPI_BaudRatePrescaler?=?SPI_BaudRatePrescaler_32;
SPI_InitStructure.SPI_FirstBit?=?SPI_FirstBit_MSB;

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????6060??2018-11-13?20:18??Physical_Mcp2515.h
?????文件???????21465??2018-11-13?20:13??Physical_Mcp2515.c

評論

共有 條評論