• 大小: 6.41MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-24
  • 语言: 其他
  • 标签: STM32  FPGA  16位SPI  

资源简介

STM32与FPGA通讯,使用的是16位SPI协议。STM32F103ZET6 Verilog

资源截图

代码片段和文件信息

#include “can.h“
#include “usart.h“


//CAN初始化
//tsjw:重新同步跳跃时间单元.范围:CAN_SJW_1tq~ CAN_SJW_4tq
//tbs2:时间段2的时间单元.   范围:CAN_BS2_1tq~CAN_BS2_8tq;
//tbs1:时间段1的时间单元.   范围:CAN_BS1_1tq ~CAN_BS1_16tq
//brp :波特率分频器.范围:1~1024;  tq=(brp)*tpclk1
//波特率=Fpclk1/((tbs1+tbs2+1)*brp);
//mode:CAN_Mode_Normal普通模式;CAN_Mode_LoopBack回环模式;
//Fpclk1的时钟在初始化的时候设置为36M如果设置CAN_Mode_Init(CAN_SJW_1tqCAN_BS2_8tqCAN_BS1_9tq4CAN_Mode_LoopBack);
//则波特率为:36M/((8+9+1)*4)=500Kbps
//返回值:0初始化OK;
//    其他初始化失败;
u8 CAN_Mode_Init(u8 tsjwu8 tbs2u8 tbs1u16 brpu8 mode)  
{
GPIO_InitTypeDef  GPIO_InitStructure;
CAN_InitTypeDef  CAN_InitStructure;
CAN_FilterInitTypeDef CAN_FilterInitStructure;

#if CAN_RX0_INT_ENABLE 
NVIC_InitTypeDef   NVIC_InitStructure;
#endif

RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1 ENABLE); //打开CAN1时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ENABLE);   //PA端口时钟打开

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //PA11    
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;   //上拉输入模式
GPIO_Init(GPIOA &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; //PA12    
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;   //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO口速度为50MHz
GPIO_Init(GPIOA &GPIO_InitStructure);

CAN_InitStructure.CAN_Prescaler=brp;  //分频系数
CAN_InitStructure.CAN_Mode=mode;  //CAN工作模式  环回模式
CAN_InitStructure.CAN_SJW=tsjw; //重新同步跳跃宽度 1 个时间单位
CAN_InitStructure.CAN_BS1=tbs1; //时间段 1 为 8 个时间单位
CAN_InitStructure.CAN_BS2=tbs2; //时间段 2 为 7 个时间单位
CAN_InitStructure.CAN_TTCM=DISABLE; //非时间触发通信模式
CAN_InitStructure.CAN_ABOM=DISABLE; //失能自动离线管理
CAN_InitStructure.CAN_AWUM=DISABLE; //失能自动唤醒模式
CAN_InitStructure.CAN_NART=ENABLE; //使能非自动重传输模式
CAN_InitStructure.CAN_RFLM=DISABLE; //失能接收 FIFO 锁定模式
CAN_InitStructure.CAN_TXFP=DISABLE; //失能发送 FIFO 优先级
CAN_Init(CAN1&CAN_InitStructure);

CAN_FilterInitStructure.CAN_FilterNumber=0; //过滤器0
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;  //屏蔽位模式
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;  //32位宽 
CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000; //32位ID
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//32位MASK
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//过滤器0关联到FIFO0
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;//激活过滤器0
CAN_FilterInit(&CAN_FilterInitStructure); //滤波器初始化

#if CAN_RX0_INT_ENABLE 
CAN_ITConfig(CAN1CAN_IT_FMP0ENABLE); //FIFO0消息挂号中断允许.     

NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;     // 主优先级为1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;            // 次优先级为0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
#endif
return 0;
}

#if CAN_RX0_INT_ENABLE //使能RX0中断
//中断服务函数     
void USB_LP_

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-03-20 10:01  SPI_16\
     文件        1273  2019-03-19 13:58  SPI_16\SPI_16.qpf
     文件        3348  2019-03-20 09:34  SPI_16\SPI_16.qsf
     文件        1570  2019-03-20 10:01  SPI_16\SPI_16.qws
     文件        4334  2019-03-20 09:34  SPI_16\SPI_16.v
     文件       32222  2019-03-19 13:54  SPI_16\SPI_16.v.bak
     目录           0  2019-03-20 10:01  SPI_16\db\
     文件       11966  2019-03-20 09:34  SPI_16\db\SPI_16.(0).cnf.cdb
     文件        1773  2019-03-20 09:34  SPI_16\db\SPI_16.(0).cnf.hdb
     文件        2483  2019-03-20 09:34  SPI_16\db\SPI_16.asm.qmsg
     文件        1472  2019-03-20 09:34  SPI_16\db\SPI_16.asm.rdb
     文件        7993  2019-03-20 09:34  SPI_16\db\SPI_16.asm_labs.ddb
     文件          88  2019-03-20 09:34  SPI_16\db\SPI_16.cbx.xml
     文件         574  2019-03-20 09:34  SPI_16\db\SPI_16.cmp.bpm
     文件       20056  2019-03-20 09:34  SPI_16\db\SPI_16.cmp.cdb
     文件       12252  2019-03-20 09:34  SPI_16\db\SPI_16.cmp.hdb
     文件        9084  2019-03-20 09:34  SPI_16\db\SPI_16.cmp.idb
     文件         204  2019-03-20 09:34  SPI_16\db\SPI_16.cmp.kpt
     文件        8838  2019-03-20 09:34  SPI_16\db\SPI_16.cmp.logdb
     文件       18035  2019-03-20 09:34  SPI_16\db\SPI_16.cmp.rdb
     文件         210  2019-03-20 09:34  SPI_16\db\SPI_16.cmp_merge.kpt
     文件      746342  2019-03-20 09:34  SPI_16\db\SPI_16.cycloneive_io_sim_cache.45um_ff_1200mv_0c_fast.hsd
     文件      745244  2019-03-20 09:34  SPI_16\db\SPI_16.cycloneive_io_sim_cache.45um_ss_1200mv_0c_slow.hsd
     文件      740138  2019-03-20 09:34  SPI_16\db\SPI_16.cycloneive_io_sim_cache.45um_ss_1200mv_85c_slow.hsd
     文件         140  2019-03-20 09:10  SPI_16\db\SPI_16.db_info
     文件       17546  2019-03-20 09:34  SPI_16\db\SPI_16.fit.qmsg
     文件        1890  2019-03-20 09:34  SPI_16\db\SPI_16.hier_info
     文件         484  2019-03-20 09:34  SPI_16\db\SPI_16.hif
     文件         163  2019-03-20 10:01  SPI_16\db\SPI_16.ipinfo
     文件         372  2019-03-20 09:34  SPI_16\db\SPI_16.lpc.html
     文件         399  2019-03-20 09:34  SPI_16\db\SPI_16.lpc.rdb
............此处省略271个文件信息

评论

共有 条评论