OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4160|回复: 3

回环模式正常,正常模式接收不进中断

[复制链接]

4

主题

8

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-8-21
在线时间
0 小时
发表于 2015-6-23 12:03:42 | 显示全部楼层 |阅读模式
5金钱
我使用的是战舰的历程进行修改后的程序。板子上带了TJA1050,TXD---PA12  RXD---PA11.
[mw_shl_code=c,true]int main(void) { delay_init(); //Nokia5110 GPIO_Configuration(); LCD_Init();       LCD_BL_ON(); LCD_Clear(); LCD_WriteEnglishSring(8,0,"Conditioner"); LCD_WriteEnglishSring(40,1,"2015-07"); LCD_WriteEnglishSring(0,2,"Tem:"); LCD_WriteEnglishSring(0,3,"Hum:"); LCD_WriteEnglishSring(50,2,"'C"); LCD_WriteEnglishSring(50,3,"%");         CAN_DeInit(CAN1); CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_7tq,5,CAN_Mode_Normal);//CAN_Mode_LoopBacK while(1) { for(i=0;i<8;i++) { canbuf=i*2; } res=Can_Send_Msg(canbuf,8); if(!res) GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_RESET); key=Can_Receive_Msg(buf); } }[/mw_shl_code]
[mw_shl_code=c,true]uint8_t CAN_Mode_Init(uint8_t tsjw,uint8_t tbs2,uint8_t tbs1,u16 brp,uint8_t mode) { GPIO_InitTypeDef GPIO_InitStructure; CAN_InitTypeDef CAN_InitStructure; CAN_FilterInitTypeDef CAN_FilterInitStructure; #if CAN_RX0_INT_ENABLE NVIC_InitTypeDef NVIC_InitStructure; #endif RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStructure); 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= mode; CAN_InitStructure.CAN_SJW=tsjw; CAN_InitStructure.CAN_BS1=tbs1; CAN_InitStructure.CAN_BS2=tbs2; CAN_InitStructure.CAN_Prescaler=brp; CAN_Init(CAN1, &CAN_InitStructure); CAN_FilterInitStructure.CAN_FilterNumber=0; CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask; CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000; CAN_FilterInitStructure.CAN_FilterIdLow=0x0000; CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000; CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000; CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FilterFIFO0; CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; CAN_FilterInit(&CAN_FilterInitStructure); #if CAN_RX0_INT_ENABLE CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE); NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); #endif return 0; } #if CAN_RX0_INT_ENABLE void USB_LP_CAN1_RX0_IRQnHandler(void) { CanRxMsg RxMessage; CAN_Receive(CAN1, 0, &RxMessage); //for(uint8_t i=0;i<8;i++) LCD_WriteEnglishSring(20,4,"succeed!"); } #endif uint8_t Can_Send_Msg(uint8_t* msg,uint8_t len) { uint8_t mbox; u16 i=0; CanTxMsg TxMessage; TxMessage.StdId=0x1BC; TxMessage.ExtId=0x12; TxMessage.IDE=0; TxMessage.RTR=0; TxMessage.DLC=len; for(i=0;i<len;i++) TxMessage.Data=msg; mbox= CAN_Transmit(CAN1, &TxMessage); i=0; while((CAN_TransmitStatus(CAN1, mbox)==CANTXFAILED)&&(i<0XFFF))i++; if(i>=0XFFF)return 1; return 0; } uint8_t Can_Receive_Msg(uint8_t *buf) { uint32_t i; CanRxMsg RxMessage; if( CAN_MessagePending(CAN1,CAN_FIFO0)==0)return 0; CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); for(i=0;i<8;i++) buf=RxMessage.Data; return RxMessage.DLC; } [/mw_shl_code]
#define CAN_RX0_INT_ENABLE    1   已经置为一,但是程序无法进中断,接收邮箱数据无,发送邮箱数据正常。 [mw_shl_code=c,true]if( CAN_MessagePending(CAN1,CAN_FIFO0)==0)return 0; 始终只能执行到这里,无中断产生,希望得到指点。谢谢 [/mw_shl_code]



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-6-23 19:30:33 | 显示全部楼层
不用中断模式,正常模式,可以接收么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

8

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-8-21
在线时间
0 小时
 楼主| 发表于 2015-6-27 16:35:52 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
并不能接收到~
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-6-27 17:53:57 | 显示全部楼层
回复【3楼】assange:
---------------------------------
 别修改我们例程 了,直接下载我们例程测试下。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 22:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表