资源简介
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.xm
文件 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个文件信息
相关资源
- 触摸芯片XW12A
- stm32-DS18B20 数码管显示
- 基于stm32f103的tsl2561光强传感器程序
- STM32的ADC1的三路通道数据采集(STM3
- MAX17043电量检测模块代码
- NB-iot(bc28模组程序)
- 平衡小车PCB+代码+原理图
- STM32F103+ W5500 USART转以太网 TcpServer
- stm32f103的正弦波代码
- 红外手势识别传感器STM32代码
- STM32F1 LWIP开发手册(DM9000版)
- 两轮平衡小车K5环境+STM32+MPU6050+卡尔曼
- 黑金AD7606 stm32并行程序
- FPGA数字频率计数码管显示
- stm32f103usb游戏手柄项目 可用于usb键盘
- stm32f103rct6开发资料 小系统 开发文档
- 基于stm32的SPWM
- 基于fpga的打地鼠小游戏
- stm32+mpu6050程序,完美运行
- STM32SD卡读取
- 数字信号处理的FPGA实现.pdf
- STM32F4 485 modbus
- stm321f130zet6开发板pcb文件
- 基于STM32库函数的AD9854
- STM32核心板PCB
- stm32lcd显示矩阵键盘
- STM32F103VET6+STM32F103ZET6+STM32F107VC核心板
- STM32F103C8T6 串行驱动 12864屏幕
- stm32霍尔传感器测速程序
- Verilog语言生成正弦波
评论
共有 条评论