资源简介
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个文件信息
相关资源
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- FPGA实现PID.v
- STM32 2.4G通信例程
- 基于FPGA的sdi视频传输工程(k7_sdi_rx
- FPGA彩条显示
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- Xilinx-FPGA-引脚功能详细介绍.doc
- 基于xilinx FPGA的PCIe设计实战
- 基于PCIe的FPGA动态配置设计与实现
- 为什么工程师要掌握FPGA开发知识?
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- 数字频率合成dds正弦波基于FPGA的DDS产
- Verilog FPGA UART串口控制器
- STM32基于rt_thread操作系统的SDHC卡文件
- gmsk调制在FPGA上实现
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- 一个简单的verilog编写的DMA IP CORE,和
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- FPGA在步进电机驱动上的应用实例及代
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
评论
共有 条评论