HC32F0CAN的问题
节点ADC采集电压发送给另一节点,结果一段时间后就只发送一个固定的电压值(其实ADC采集出来的电压一直在变化),感觉有点像STM32的CAN FIFO被锁定。请问各位大佬怎么解决这个问题啊,求助,卡了好久了这个问题 这是CAN的配置
//<<CAN 波特率配置
stcCanInitCfg.stcCanBt.PRESC = 200-1;
stcCanInitCfg.stcCanBt.SEG_1 = 9-2;
stcCanInitCfg.stcCanBt.SEG_2 = 7-1;
stcCanInitCfg.stcCanBt.SJW = 7-1;
// stcCanInitCfg.stcCanBt.PRESC = 100-1;
// stcCanInitCfg.stcCanBt.SEG_1 = 7-2;
// stcCanInitCfg.stcCanBt.SEG_2 = 5-1;
// stcCanInitCfg.stcCanBt.SJW = 5-1;
stcCanInitCfg.stcWarningLimit.CanErrorWarningLimitVal = 10;
stcCanInitCfg.stcWarningLimit.CanWarningLimitVal = 16-1;
stcCanInitCfg.enCanRxBufAll= CanRxNormal;
//stcCanInitCfg.enCanRxBufMode = CanRxBufNotStored;
stcCanInitCfg.enCanRxBufMode = CanRxBufOverwritten;
stcCanInitCfg.enCanSTBMode = CanSTBFifoMode;
CAN_Init(&stcCanInitCfg);
//<<CAN 滤波器配置
stcFilter.enAcfFormat = CanStdFrames;
stcFilter.enFilterSel = CanFilterSel1;
uint8_t addr = flash_arr;
stcFilter.u32CODE = addr;//ID CODE 寄存器用于比较接收到 CAN ID
stcFilter.u32MASK = 0xE000000;//ID MASK 寄存器用于选择比较的 CAN ID 位。对应的 ID MASK 位为 1 时,不比较该位的 ID CODE。
CAN_FilterConfig(&stcFilter, TRUE);
//<<Can Irq Enable
CAN_IrqCmd(CanRxIrqEn, TRUE);
CAN_IrqCmd(CanBusErrorIrqEn, TRUE);
EnableNvic(CAN_IRQn, IrqLevel0, TRUE);
hc32f072这款吗?我目前用的can,没问题,adc还没测试 can好像只有接收fifo会被锁定 发送的没有这个功能吧 首先需要解决或者说确定的问题就是adc送入fifo的数据是否是正确的 监测看一下ad传输给发送单元的数据是否正常 在运行ad采集以及can数据传输的过程中还有其他进程运行吗 can的配置没有问题的话 是否应该考虑一下缓存是不是溢出了 这个固定的值 在接收节点能正常收取吗 caizhiwei 发表于 2022-10-22 20:52
hc32f072这款吗?我目前用的can,没问题,adc还没测试
hc32f072,今天果然入坑了,开启多路ADC采样,结果can数据发不出去
页:
[1]