stm32 can怎么产生stm32串口dma接收中断断

CAN2 进不了收中断==
热门型号:
&&&当前位置:
CAN2 进不了收中断
注册时间: 9:36:00
CAN2 进不了收中断
各位兄弟,我来求助了,我用到的,我用到CAN2,CAN2可以发,但进不了接收中断,求真像。相关代码如下:RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2,ENABLE);。。void CAN_Configuration(void){ CAN_InitTypeDef
CAN_InitS CAN_FilterInitTypeDefCAN_FilterInitS
CAN_DeInit(CAN2); CAN_StructInit(&CAN_InitStructure);
/* CAN cell init */ CAN_InitStructure.CAN_TTCM = DISABLE; CAN_InitStructure.CAN_ABOM = DISABLE; CAN_InitStructure.CAN_AWUM = DISABLE; CAN_InitStructure.CAN_NART = DISABLE; CAN_InitStructure.CAN_RFLM = DISABLE; CAN_InitStructure.CAN_TXFP = DISABLE; CAN_InitStructure.CAN_Mode = CAN_Mode_N CAN_InitStructure.CAN_SJW = CAN_SJW_1 CAN_InitStructure.CAN_BS1 = CAN_BS1_3 CAN_InitStructure.CAN_BS2 = CAN_BS2_5 CAN_InitStructure.CAN_Prescaler = 4; CAN_Init(CAN2, &CAN_InitStructure);
/* CAN filter init */ CAN_FilterInitStructure.CAN_FilterNumber=14; CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdM CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32 CAN_FilterInitStructure.CAN_FilterIdHigh=0; CAN_FilterInitStructure.CAN_FilterIdLow=0;CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0; CAN_FilterInitStructure.CAN_FilterMaskIdLow=0; CAN_FilterInitStructure.CAN_FilterFIFOAssignment=0; CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; CAN_FilterInit(CAN2, &CAN_FilterInitStructure);
/* transmit */ TxMessage.StdId = 0x321;TxMessage.ExtId = 0x01;TxMessage.RTR = CAN_RTR_DATA;TxMessage.IDE = CAN_ID_STD;TxMessage.DLC = 1;}。。void NVIC_Configuration(void) {
NVIC_InitTypeDef NVIC_InitS
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
NVIC_InitStructure.NVIC_IRQChannel = CAN2_RX0_IRQn;////
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure); }。。void CAN2_RX0_IRQHandler(void){ //我在这里放个断点,用另一个开发板发送CAN数据,进不了中断。另一个发送的是一定没问题的 CAN_Receive(CAN2, CAN_FIFO0, &RxMessage);
注册时间: 10:11:00
对了,我在Main.c中开了中断了,CAN_ITConfig(CAN2, CAN_IT_FMP0, ENABLE);
用户名:dami
注册时间: 11:26:00
如果能发。并且看到正确数据,硬件是没问题的了。配置哪里不对?过滤全关了试试。还是其他的?
应该就是初始化,然后是中断打开就可以用了。
用户名:mcuatmel
注册时间: 11:33:00
建议用例程跑下试试看是否好用,验证下你的硬件是否有问题。
如果是自己的CAN2给CAN1发数可能会不好用,当时我用STR731时遇过这问题,后来没去管它。
热门型号:有谁知道我的CAN这么设置为什么进不了中断么?|STM32F103 - 安富莱电子论坛 - Powered by phpwind
查看完整版本: [--
有谁知道我的CAN这么设置为什么进不了中断么?
void PhyCanGpioClockInit(void)&&&&//CAN端口设置{
GPIO_InitTypeDef GPIO_InitS RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1,ENABLE);&&&&//设置APB1时钟用于CAN1端口使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA, ENABLE);&& //设置APB2时钟由于GPIOA端口使能&&&& GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;&&&&&&&&//PA11 CAN1接收端口 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;&&&&&& //PA11功能设置 GPIO_Init(GPIOA, &GPIO_InitStructure);&&&&&&&&&&//设置GPIOA端口 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;&&&&&&&&//PA12 CAN1发送端口 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;&&&&&&//PA12 CAN1发送端口 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;&&&&&&//端口速度 GPIO_Init(GPIOA, &GPIO_InitStructure);&&&&&&&&&&//设置端口 void CanIRQInit(void){ NVIC_InitTypeDef NVIC_InitS
NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;&&//中断源 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;&&//先占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;&&&& //从占优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;&&&&&& //中断是否开通 NVIC_Init(&NVIC_InitStructure);
CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE);&& //CAN中断开通设置中断源的动作条件} void PhyCanPeripheralInit(unsigned short canBaud)&& //CAN基本参数{
CAN_DeInit(CAN1);&&&&&&&&&&&&&& //CAN恢复默认值 CAN_StructInit(&CAN_InitStructure);&&&&&&//恢复结构体默认值 CAN_InitStructure.CAN_TTCM = DISABLE;&&&& //TTCM 时间触发通讯模式 enable/disable CAN_InitStructure.CAN_ABOM = ENABLE;&&&& //ABOM 自动离线管理 enable/disable CAN_InitStructure.CAN_AWUM = DISABLE;&&&& //AWUM 自动唤醒 CAN_InitStructure.CAN_NART = DISABLE;&&&& //NART 禁止报文失败自动重传 CAN_InitStructure.CAN_RFLM = DISABLE;&&&& //RFLM FIFO锁定 enable:当前数据未提取,丢弃下一报文&&&&&&&&&&&&&&&&&&&&&&&&//&&&&&&&&disable当前数据未提取,下一报文覆盖当前报文 CAN_InitStructure.CAN_TXFP = DISABLE;&&&& //发送FIFO优先级 enable优先级由发送请求顺序决定&&&&&&&&&&&&&&&&&&&&&&&&//&&&&&&&&disable优先级由报文标识符决定 CAN_InitStructure.CAN_Mode = CAN_Mode_N //CAN工作模式&& CanBaudAutoCal(canBaud);&&&&&&&&&& //CAN波特率 50/125/250/500/1000 CAN_Init(CAN1,&CAN_InitStructure);&&&&&&//设置CAN1参数
CanIRQInit();&&&&&&&&&&&&&&&& //CAN中断设置} void PhyCanRecId(unsigned long canAcr,unsigned long canAmr){ CAN_FilterInitTypeDef CAN_FilterInitS CAN_FilterInitStructure.CAN_FilterNumber=0; CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdM CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32 CAN_FilterInitStructure.CAN_FilterIdHigh=((canAcr&0xffff0000)&&16); CAN_FilterInitStructure.CAN_FilterIdLow=canAcr&0 CAN_FilterInitStructure.CAN_FilterMaskIdHigh=(((~canAmr)&0xffff0000)&&16); CAN_FilterInitStructure.CAN_FilterMaskIdLow=(~canAmr)&0 CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;&&&&//选择接收FIFO CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; CAN_FilterInit(&CAN_FilterInitStructure);} void USB_LP_CAN1_RX0_IRQHandler(void){
RxMessage.StdId=0x00; RxMessage.ExtId=0x00; RxMessage.IDE=0; RxMessage.DLC=0; RxMessage.FMI=0; LED_CAN_SET;&&&&//CAN灯灭 Runflag++;&&&&&&&& //程序运行周期
for(i=0;i&8;i++) {&&RxMessage.Data=0x00;
}//CAN_ClearITPendingBit(CAN1,CAN_IT_FMP0); //清除FIFO0消息挂号中断标志位 CAN_Receive(CAN1,CAN_FIFO0, &RxMessage); phy_st_CanMsg.us_RxId = RxMessage.StdId; phy_st_CanMsg.us_RxLenth = RxMessage.DLC;&&
for(i=0;i&8;i++) {&&phy_st_CanMsg.uc_Rxmessage=RxMessage.Data; } phy_st_CanMsg.us_RxOver = 0x01;&& for(;;); }
楼主美女,你用的这个是F1的can吗
:楼主美女,你用的这个是F1的can吗&( 10:24)&是啊
:楼主美女,你用的这个是F1的can吗&( 10:24)&有什么指教呢?
:有什么指教呢?
官方有F1使用CAN中断例子的,或者参考我们的这个例子吧:/read.php?tid=3[attachment=4312]
V5里是不是没有关于CAN的例程啊,因为之前买的板是V5的,现在又用F1,本来想参照一下
:官方有F1使用CAN中断例子的,或者参考我们的这个例子吧:/read.php?tid=3[图片].......&( 11:30)&V5里是不是没有关于CAN的例程啊,因为之前买的板是V5的,现在又用F1,本来想参照一下
:V5里是不是没有关于CAN的例程啊,因为之前买的板是V5的,现在又用F1,本来想参照一下 ( 14:10) V5里面没有CAN
:V5里面没有CAN&( 17:34)&好的,知道了,谢谢!
:好的,知道了,谢谢![表情]  ( 09:22) 后得把这些没有完善起来的例子都完善起来。
:后得把这些没有完善起来的例子都完善起来。&( 17:54)&嗯,赞一个
CAN F4和F1基本一样,可以直接参考
:CAN F4和F1基本一样,可以直接参考&( 13:09)&嗯,谢谢!
查看完整版本: [--
Powered by
Time 0.060543 second(s),query:2 Gzip enabledCAN接收中断不进入!!??? - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 14546|回复: 17
CAN接收中断不进入!!???
主题帖子威望
金牌会员, 积分 1994, 距离下一级还需 1006 积分
金牌会员, 积分 1994, 距离下一级还需 1006 积分
以下是我的代吗!
是CAN接收中断+初始化
波特率100K,
时钟,GPIO,复用,我都设置了,就是不进中断.
这是为什么???????
请高手指点....谢谢!!!!
STM32F103RET6_64PIN
00:07 上传
点击文件名下载附件
1.02 MB, 下载次数: 118
主题帖子威望
金牌会员, 积分 1994, 距离下一级还需 1006 积分
金牌会员, 积分 1994, 距离下一级还需 1006 积分
RE:CAN接收中断不进入!!???
程序可以正常运行,发送数据没有问题.
就是接收不正确!!!!
主题帖子威望
金牌会员, 积分 1994, 距离下一级还需 1006 积分
金牌会员, 积分 1994, 距离下一级还需 1006 积分
RE:CAN接收中断不进入!!???
我顶。。。。。。。。。
兄弟们指点一下。。。。。
主题帖子威望
高级会员, 积分 545, 距离下一级还需 455 积分
高级会员, 积分 545, 距离下一级还需 455 积分
RE:CAN接收中断不进入!!???
你没有在中断嵌套函数设置.如下:
void NVIC_Configuration(void)
&&NVIC_InitTypeDef NVIC_InitS
#ifdef&&VECT_TAB_RAM&&
&&/* Set the Vector Table base location at 0x */
&&NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else&&/* VECT_TAB_FLASH&&*/
&&/* Set the Vector Table base location at 0x */
&&NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);& &
&&/* enabling interrupt */
&&NVIC_InitStructure.NVIC_IRQChannel=USB_LP_CAN_RX0_IRQC
&&NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
&&NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
&&NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
&&NVIC_Init(&NVIC_InitStructure);
主题帖子威望
RE:CAN接收中断不进入!!???
CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);
这里只开启了发送中断,并未开启接收中断。
主题帖子威望
金牌会员, 积分 1994, 距离下一级还需 1006 积分
金牌会员, 积分 1994, 距离下一级还需 1006 积分
RE:CAN接收中断不进入!!???
我看例子都是这么写的啊!!!
主题帖子威望
金牌会员, 积分 1994, 距离下一级还需 1006 积分
金牌会员, 积分 1994, 距离下一级还需 1006 积分
RE:CAN接收中断不进入!!???
“你没有在中断嵌套函数设置&
是什么意思???
请zhouke58兄弟指点,。。。。。。。。。。。。。
主题帖子威望
金牌会员, 积分 1994, 距离下一级还需 1006 积分
金牌会员, 积分 1994, 距离下一级还需 1006 积分
RE:CAN接收中断不进入!!???
安老师,请指点。。。。。。。。。
主题帖子威望
高级会员, 积分 545, 距离下一级还需 455 积分
高级会员, 积分 545, 距离下一级还需 455 积分
RE:CAN接收中断不进入!!???
第一:安老师也讲了“CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);
这里只开启了发送中断,并未开启接收中断。”
这里具体的设置函数如下;
void CAN_ITConfig(u32 CAN_IT, FunctionalState NewState)
使能或者失能指定的CAN中断
CAN_IT:待使能或者失能的CAN中断
NewState:CAN中断的新状态这个参数可以取:ENABLE或者DISABLE
CAN_IT可以取以下值:
CAN_IT_TME 发送邮箱空中断屏蔽
CAN_IT_FMP0 FIFO0消息挂号中断屏蔽
CAN_IT_FF0 FIFO0满中断屏蔽
CAN_IT_FOV0 FIFO0溢出中断屏蔽
AN_IT_FMP1 FIFO1消息挂号中断屏蔽
CAN_IT_FF1 FIFO1满中断屏蔽
CAN_IT_FOV1 FIFO1溢出中断屏蔽
CAN_IT_EWG 错误警告中断屏蔽
CAN_IT_EPV 错误被动中断屏蔽
CAN_IT_BOF 离线中断屏蔽
CAN_IT_LEC 上次错误号中断屏蔽
CAN_IT_ERR 错误中断屏蔽
CAN_IT_WKU 唤醒中断屏蔽
CAN_IT_SLK 睡眠标志位中断屏蔽
以上一定要设置
主题帖子威望
高级会员, 积分 545, 距离下一级还需 455 积分
高级会员, 积分 545, 距离下一级还需 455 积分
RE:CAN接收中断不进入!!???
第二设置void NVIC_Configuration(void)
NVIC驱动有多种用途:例如使能或者失能IRQ中断,使能或者失能单独的IRQ通道,改变IRQ通道的优先级等等。
具体你可以自己看固件库,都有说明的,我也是从里面弄出来的。
站长推荐 /1
即日起,ST面向全球征集STM32解决方案,其中优秀项目将有机会作为参考案例在ST官网展示,同时还将携手ST共赴线下展会,与全球技术大牛一较高下。
Tel: 3-8056
备案号: 苏ICP备号-2
Powered byCAN接收中断_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
CAN接收中断
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢STM32F042K6的CAN接收中断进不去,求教 - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 1438|回复: 20
STM32F042K6的CAN接收中断进不去,求教
主题帖子威望
新手上路, 积分 44, 距离下一级还需 6 积分
新手上路, 积分 44, 距离下一级还需 6 积分
STM32F042K6的CAN接收中断进不去,求教
最近刚接触与CAN通讯相关的项目, 对着方面不是太了解, 在调STM32F042K6的CAN通讯驱动时, 死活进不了接收中断(发送中断是可以的), 希望大家不吝敕教,谢谢!!!
01.jpg (160.79 KB, 下载次数: 0)
11:55 上传
02.jpg (49.11 KB, 下载次数: 0)
11:55 上传
03.jpg (61.4 KB, 下载次数: 0)
11:56 上传
05.jpg (41.33 KB, 下载次数: 0)
12:07 上传
04.jpg (49.53 KB, 下载次数: 0)
12:07 上传
下面是配置代码:
/*******************************************************************************
****输入: 无
****输出: 无
****端口: CAN_RX~~PA11; CAN_TX~~PA12;
****说明: CAN通讯初始化
****名称: can_init();//
*******************************************************************************/
void can_init(void)& & & & //
& & & & GPIO_InitTypeDef GPIO_InitS
& & & & NVIC_InitTypeDef NVIC_InitS
& & & & CAN_InitTypeDef&&CAN_InitS
& & & & CAN_FilterInitTypeDef CAN_FilterInitS
& & & & //CAN中断使能和优先级设置
& & & & NVIC_InitStructure.NVIC_IRQChannel = CEC_CAN_IRQn;& & & &&&
& & & & NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
& & & & NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
& & & & NVIC_Init(&NVIC_InitStructure);
& & & & //CAN时钟配置
& & & & RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);& && && && && && & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&
& & & & RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN, ENABLE);
& & & & //CAN端口复用
& & & & GPIO_PinAFConfig(GPIOA,GPIO_PinSource11,GPIO_AF_4);
& & & & GPIO_PinAFConfig(GPIOA,GPIO_PinSource12,GPIO_AF_4);
& & & & //CAN_RX端口配置
& & & & GPIO_InitStructure.GPIO_Pin& & = GPIO_Pin_11;
& & & & GPIO_InitStructure.GPIO_Mode& &= GPIO_Mode_AF;
& & & & GPIO_InitStructure.GPIO_Speed&&= GPIO_Speed_50MHz;
& & & & GPIO_InitStructure.GPIO_PuPd& &= GPIO_PuPd_NOPULL;
& & & & GPIO_Init(GPIOA, &GPIO_InitStructure);
& & & & //CAN_TX端口配置
& & & & GPIO_InitStructure.GPIO_Pin& & = GPIO_Pin_12;
& & & & GPIO_InitStructure.GPIO_Mode& &= GPIO_Mode_AF;
& & & & GPIO_InitStructure.GPIO_OType&&= GPIO_OType_PP;
& & & & GPIO_InitStructure.GPIO_Speed&&= GPIO_Speed_10MHz;
& & & & GPIO_InitStructure.GPIO_PuPd& &= GPIO_PuPd_NOPULL;
& & & & GPIO_Init(GPIOA, &GPIO_InitStructure);
& & & & //CAN_STB端口初始化
& & & & GPIO_InitStructure.GPIO_Pin& & = GPIO_Pin_10;
& & & & GPIO_InitStructure.GPIO_Mode& &= GPIO_Mode_OUT;
& & & & GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& & & & GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
& & & & GPIO_InitStructure.GPIO_PuPd&&= GPIO_PuPd_NOPULL;&&
& & & & GPIO_Init(GPIOA, &GPIO_InitStructure);
& & & & CAN_STB_OL();& & & & //& & & &
& & & & //CAN单元设置
& & & & 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;
& & & & CAN_InitStructure.CAN_TXFP = DISABLE;
& & & & CAN_InitStructure.CAN_Mode = CAN_Mode_N//CAN_Mode_N
& & & & //CAN波特率设置,500KHz@48MHz
& & & & CAN_InitStructure.CAN_SJW = CAN_SJW_1
& & & & CAN_InitStructure.CAN_BS1 = CAN_BS1_8
& & & & CAN_InitStructure.CAN_BS2 = CAN_BS2_7
& & & & CAN_InitStructure.CAN_Prescaler = 6;
& & & & CAN_Init(CAN, &CAN_InitStructure);
& & & & //CAN过滤器FIFO0配置
& & & & CAN_FilterInitStructure.CAN_FilterNumber = 0;
& & & & CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdL
& & & & CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32
& & & & CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;
& & & & CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;
& & & & CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
& & & & CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;
& & & & CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;
& & & & CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
& & & & CAN_FilterInit(&CAN_FilterInitStructure);
& & & & //使能CAN中断
& & & & CAN_ClearITPendingBit(CAN, CAN_IT_FF0);
& & & & CAN_ITConfig(CAN, CAN_IT_TME, ENABLE);
& & & & CAN_ITConfig(CAN, CAN_IT_FMP0, ENABLE);
& & & & CAN_ITConfig(CAN, CAN_IT_FF0, ENABLE);
/*******************************************************************************
****输入: 无
****输出: 无
****端口: CAN_RX~~PA11; CAN_TX~~PA12;
****说明: CAN中断服务函数
****名称: CEC_CAN_IRQHandler();//
*******************************************************************************/
void CEC_CAN_IRQHandler(void)
& & & & u8 i = 0;
**& & & & if (CAN_GetITStatus(CAN, CAN_IT_TME) != 0)
& & & & & & & & CAN_ClearITPendingBit(CAN, CAN_IT_TME);
& & & & & & & & i++;
& & & & if (CAN_GetITStatus(CAN, CAN_IT_FMP0) != 0)
***& & & & & & & & CAN_ClearITPendingBit(CAN, CAN_IT_FMP0);
& & & & & & & & i++;
& & & & if (CAN_GetITStatus(CAN, CAN_IT_FF0) != 0)
& & & & & & & & CAN_ClearITPendingBit(CAN, CAN_IT_FF0);
& & & & & & & & i++;
& & & & if (CAN_GetITStatus(CAN, CAN_IT_FOV0) != 0)
& & & & & & & & CAN_ClearITPendingBit(CAN, CAN_IT_FOV0);
& & & & & & & & i++;
以上代码调试时,星号处是打的断点, 用CAN分析仪发数据过来, 我的代码却进不了接收中断, 确定是有数据过来的!
麻烦大家帮忙看看哪里搞错了, 非常感谢!!!
主题帖子威望
初级会员, 积分 188, 距离下一级还需 12 积分
初级会员, 积分 188, 距离下一级还需 12 积分
CAN的GPIO设置为上拉试下
主题帖子威望
新手上路, 积分 12, 距离下一级还需 38 积分
新手上路, 积分 12, 距离下一级还需 38 积分
我也用的这个芯片,比你的更惨点,我连发送数据都发不了,407用同样的代码就行,F042就不行了
主题帖子威望
新手上路, 积分 44, 距离下一级还需 6 积分
新手上路, 积分 44, 距离下一级还需 6 积分
我也用的这个芯片,比你的更惨点,我连发送数据都发不了,407用同样的代码就行,F042就不行了 ...
我认为问题应该还是出在这两个脚的配置上面
主题帖子威望
新手上路, 积分 44, 距离下一级还需 6 积分
新手上路, 积分 44, 距离下一级还需 6 积分
CAN的GPIO设置为上拉试下
上拉我试过了, 不行......
主题帖子威望
高级会员, 积分 992, 距离下一级还需 8 积分
高级会员, 积分 992, 距离下一级还需 8 积分
你先用 LOOP模式测试下,看软件配置有无问题;
NORMAL模式的话,两边要接好线路,匹配电阻也用上;
CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdL===》改成
CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdM 验证下
不然你那边发过来的ID要跟这边FILTER设置的一模一样,否则收不到收据;
官方有CAN历程可以参考;
主题帖子威望
新手上路, 积分 12, 距离下一级还需 38 积分
新手上路, 积分 12, 距离下一级还需 38 积分
Loop没有问题的
主题帖子威望
新手上路, 积分 12, 距离下一级还需 38 积分
新手上路, 积分 12, 距离下一级还需 38 积分
我试了下你的代码,可以进接收中断的啊,发送也成功了,谢谢你的代码了,不然我还真不知道怎么折腾 ,你找找其它的原因看,我的可以发可以收了
主题帖子威望
新手上路, 积分 44, 距离下一级还需 6 积分
新手上路, 积分 44, 距离下一级还需 6 积分
我试了下你的代码,可以进接收中断的啊,发送也成功了,谢谢你的代码了,不然我还真不知道怎么折腾 ,你找 ...
好吧,你用的是什么芯片,型号多少
主题帖子威望
新手上路, 积分 44, 距离下一级还需 6 积分
新手上路, 积分 44, 距离下一级还需 6 积分
你先用 LOOP模式测试下,看软件配置有无问题;
NORMAL模式的话,两边要接好线路,匹配电阻也用上;
站长推荐 /1
即日起,ST面向全球征集STM32解决方案,其中优秀项目将有机会作为参考案例在ST官网展示,同时还将携手ST共赴线下展会,与全球技术大牛一较高下。
Tel: 3-8056
备案号: 苏ICP备号-2
Powered by}

我要回帖

更多关于 stm32 中断发送与接收 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信