初级会员

- 积分
- 150
- 金钱
- 150
- 注册时间
- 2015-11-23
- 在线时间
- 24 小时
|
6金钱
本帖最后由 Autoer 于 2016-1-22 16:10 编辑
我用的是stm32f103rct6的芯片,打算用can发送和中断函数来处理数据传输。我还需要原子例程那的Can_Send_Msg函数吗?还是在USB_HP_CAN1_TX_IRQHandler(void)里面写上mbox= CAN_Transmit(CAN1, &TxMessage); i=0; while((CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Failed)&&(i<0XFF))i++; ? 
一下是一点程序配置:
CAN_InitStructure.CAN_NART=DISABLE;
CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);
CAN_ITConfig(CAN1,CAN_IT_TME,ENABLE);
void USB_LP_CAN1_RX0_IRQHandler(void)
{
CanRxMsg rx_message;
if (CAN_GetITStatus(CAN1,CAN_IT_FMP0)!= RESET)
{
CAN_ClearITPendingBit(CAN1, CAN_IT_FMP0);
CAN_Receive(CAN1, CAN_FIFO0, &rx_message);
}
}
void USB_HP_CAN1_TX_IRQHandler(void)
{
if (CAN_GetITStatus(CAN1,CAN_IT_TME)!= RESET)
{
CAN_ClearITPendingBit(CAN1,CAN_IT_TME);
}
}
|
|