问答

汇集网友智慧,解决技术难题

21ic问答首页 - TAG - 失败
  • GD32E230用捕获及485通讯,开启捕获就通讯卡死且初始化失败 sos

    GD32E230C8T6 用TIMER2_CH3进行频率捕获,同时用USART0进行485通讯,一开启捕获就通讯不了,且一点仿真DEBUG按钮就直接全速运行,然后就卡死在LDR R0, =SystemInit位置,无法初始化。具体代码如下: int main(void){ systick_config(); //滴答定时器初始化 Led_Gpio_Init(); //数码管引脚初始化 Key_Init(); //按键引脚初始化 Relay_GPIO_Init(); //继电器引脚初始化 Capture_Gpio_config(); //捕获引脚初始化 usart_config(9600); //串口配置 Para_Read(); //读取参数 LedPower = 1; //电源灯亮 Adc_gpio_config(); //ADC采样引脚初始化 Adc_Config(); //ADC参数配置初始化 Nvic_config(); //捕获中断 Timer2_config(); //Timer2配置 Timer5_Init(3600,40); //定时10ms = 3600/72M *200 Timer14_Init(36,625); //定时312.5us while(1) { Adc_Cal(); //ADC采样计算 fre_capture_cal(); KeyMake(); //按键动作 Protect(); Display(); //显示 UartDriver(); } } void Capture_Gpio_config(void) { /* 使能GPIOB时钟 */ rcu_periph_clock_enable(RCU_GPIOB); /* 配置PB1(TIMER2_CH3)为复用功能 */ gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_1); gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_1); gpio_af_set(GPIOB, GPIO_AF_1, GPIO_PIN_1); // 根据数据手册选择正确的AF } /* ********************************************************************************************************* * 函 数 名: nvic_config * 功能说明: 配置中断优先级 * 形 参:无 * 返 回 值: 无 ********************************************************************************************************* */ void Nvic_config(void) { nvic_irq_enable(TIMER2_IRQn,0); } /* ********************************************************************************************************* * 函 数 名: timer2_config * 功能说明: 定时器配置--捕获 * 形 参:无 * 返 回 值: 无 ********************************************************************************************************* */ void Timer2_config(void) { timer_ic_parameter_struct timer_icinitpara; timer_parameter_struct timer_initpara; /* enable the TIMER clock */ rcu_periph_clock_enable(RCU_TIMER2); /* disable a TIMER */ timer_deinit(TIMER2); /* initialize TIMER init parameter struct */ timer_struct_para_init(&timer_initpara); /* TIMER2 configuration */ timer_initpara.prescaler = 7199; timer_initpara.alignedmode = TIMER_COUNTER_EDGE; timer_initpara.counterdirection = TIMER_COUNTER_UP; timer_initpara.period = 65535; timer_initpara.clockdivision = TIMER_CKDIV_DIV1; timer_init(TIMER2, &timer_initpara); /* TIMER2 configuration */ /* initialize TIMER channel input parameter struct */ timer_channel_input_struct_para_init(&timer_icinitpara); /* TIMER2 CH3 input capture configuration */ timer_icinitpara.icpolarity = TIMER_IC_POLARITY_RISING; //此处采用下降沿捕获, TIMER_IC_POLARITY_RISING timer_icinitpara.icselection = TIMER_IC_SELECTION_DIRECTTI; timer_icinitpara.icprescaler = TIMER_IC_PSC_DIV1; timer_icinitpara.icfilter = 0x0; timer_input_capture_config(TIMER2,TIMER_CH_3,&timer_icinitpara); /* auto-reload preload enable */ timer_auto_reload_shadow_enable(TIMER2); /* clear channel 3 interrupt bit */ timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_CH3 ); /* clear channel 3 interrupt bit */ timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_UP ); /* channel 3 interrupt enable */ timer_interrupt_enable(TIMER2,TIMER_INT_CH3); /* channel 3 interrupt enable */ timer_interrupt_enable(TIMER2,TIMER_INT_UP); /* TIMER2 counter enable */ timer_enable(TIMER2); } /* ********************************************************************************************************* * 函 数 名: TIM2_IRQHandler * 功能说明: TIM2 中断服务程序 * 形 参:无 * 返 回 值: 无 1us ********************************************************************************************************* */ void TIMER2_IRQHandler(void) { if(timer_interrupt_flag_get(TIMER2,TIMER_INT_FLAG_CH3)) { timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_CH3); //清除TIMER2的中断标志 uint32_t currentCapture = timer_channel_capture_value_register_read(TIMER2,TIMER_CH_3); if(firstCapture) { lastCapture = currentCapture; firstCapture = 0; } else { capture_diff = (currentCapture - lastCapture) +(overflow_count * 65536); test_flag = 1; //置位测量标志 lastCapture = currentCapture; } overflow_count = 0; } if(timer_interrupt_flag_get(TIMER2,TIMER_INT_FLAG_UP)) { timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_UP); overflow_count ++; } } void fre_capture_cal(void) { if(test_flag) { test_flag = 0; frequency = 10000.0f/capture_diff; MeasData.freq = (uint32_t)(frequency*10); //频率转换 } if(MeasData.Uln < 50) //小于5V { MeasData.freq = 0; } } void usart_config(uint32_t band_rate) { rcu_periph_clock_enable(RCU_GPIOA); // 开启引脚端口时钟 PA9 TX PA10 RX rcu_periph_clock_enable(RCU_USART0); // 开启串口时钟 /* 配置GPIO复用功能 */ gpio_af_set(GPIOA, GPIO_AF_1, GPIO_PIN_9); gpio_af_set(GPIOA, GPIO_AF_1, GPIO_PIN_10); /* 配置PA9 TX为复用模式 上拉模式 */ gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_9); /* 配置TX为推挽输出 50MHZ */ gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9); /* 配置PA10 RX为复用模式 无上拉下拉模式 */ gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_10); /* 配置RX为浮空输入 50MHZ */ gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10); /* 配置DE为输出模式 无上拉下拉模式 */ gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_11); //485 /* 配置DE为推挽输出 50MHZ */ gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_11); //485 RS485_DE(0); //使能接收 485 usart_deinit(USART0); // 复位串口 usart_baudrate_set(USART0,band_rate); // 设置波特率 usart_parity_config(USART0,USART_PM_NONE); // 没有校验位 usart_word_length_set(USART0,USART_WL_8BIT); // 8位数据位 usart_stop_bit_set(USART0,USART_STB_2BIT); // 2位停止位 /* 使能串口 */ usart_receive_config(USART0,USART_RECEIVE_ENABLE); // 使能串口接收 usart_transmit_config(USART0,USART_TRANSMIT_ENABLE); // 使能串口发送 usart_receiver_timeout_threshold_config(USART0,100); //设置串口接收超时阈值,这个100是指100bit时间,如果按照10bit传输一个字节,那么就是10个字节时间 usart_receiver_timeout_enable(USART0); //超时使能 usart_enable(USART0); // 使能串口 nvic_irq_enable(USART0_IRQn,0); usart_interrupt_enable(USART0, USART_INT_RBNE); // 使能接收中断 usart_interrupt_enable(USART0, USART_INT_RT); //使能串口接收超时中断 } void usart_send(uint8_t *buf, uint8_t len) { uint8_t i; while(tx_busy); //等待上一个发送完成 tx_busy = 1; //准备发送 RS485_DE(1); //发送模式 usart_interrupt_disable(USART0, USART_INT_RBNE|USART_INT_RT); // 禁能接收中断(避免发送期间接收自己的数据) for(i=0; i= sizeof(g_recv_buff)) { g_recv_length = 0; } } else if(RESET != usart_interrupt_flag_get(USART0,USART_INT_FLAG_RT)) //接收中断超时标志 { usart_flag_clear(USART0,USART_FLAG_RT); g_recv_complete_flag = 1; } } void UartDriver(void) { uint8_t len; uint8_t buf[64] = {0x00}; //接收数据存放的数组 if(g_recv_complete_flag ==1) { g_recv_complete_flag = 0; process_modbus_request(); g_recv_length = 0; } } void process_modbus_request(void) { uint16_t i = 0; uint16_t j = 0; uint16_t crc = 0; //校验码 uint8_t crch = 0; //校验码高字节 uint8_t crcl = 0; //校验码低字节 uint16_t addr = 0; //寄存器地址 uint16_t cnt = 0; //数据量 uint16_t data = 0; //写入的数据 uint16_t addrtemp = 0; uint16_t index; if(g_recv_buff[0] != Para.Addr ) {return;} crc = usMBCRC16(g_recv_buff,g_recv_length-2); //校验码 crch = (uint8_t)(crc >>8); //取高8位 crcl = (uint8_t)crc; //取低位 if((g_recv_buff[g_recv_length-2]!=crch)||(g_recv_buff[g_recv_length-1]!=crcl)) //校验码不对 { return ; //返回空白值 } addr = ((uint16_t)g_recv_buff[2]<<8)|g_recv_buff[3]; //寄存器地址 switch(g_recv_buff[1]) { /*03功能码 读单个寄存器*/ case 0x03: cnt= ((uint16_t)g_recv_buff[4]<<8)|g_recv_buff[5]; if(cnt==0) //数据量=0 { Errcmd_addr_data(g_recv_buff,3); //返回数据错误码 03 return; } if((addr >= 0x0A00)&&(addr <= 0x0A04)) //地址范围0x0a00--0x0a06 { if((addr+cnt) > 0x0A05) { Errcmd_addr_data(g_recv_buff,3); //字节数超范围,报83错误码 return; } else { for(i=0;i>8); //取高8位数据 (uint8_t)强制转换为uint8_t类型的数据;*取后面括号里的数据 (uint32_t*)把Uln的地址强制转化为uint32_t类型指针 &取Uln的地址 txbuffer[4+i*2] = (uint8_t)(*((uint32_t*)& MeasData.Uln +(addr & 0x00FF)+i)); //取低8位数据 } } } else if((addr >= 0x0B00)&&(addr <= 0x0B13)) //地址范围0x0b00--0x0b07 { if(((addr+cnt) > 0x0B14)||(addr%2 !=0)) //超出地址、地址不等于8的倍数 则报错 { Errcmd_addr_data(g_recv_buff,3); //字节数超范围,报83错误码 return; } else { for(i=0;i>8); //取高8位数据 txbuffer[4+i*2] = (uint8_t)(*((uint32_t*)& Err_ASK.ErrType +((addr & 0x00FF)+i)%2)); //取低8位数据 } } } else if((addr >= 0x0C00)&&(addr <= 0x0C0B)) //地址范围0x0C00--0x0C0B { if((addr+cnt) > 0x0C0C) { Errcmd_addr_data(g_recv_buff,3); //字节数超范围,则报83错误码 return; } else { for(i=0;i>8); //取高8位数据 txbuffer[4+i*2] = (uint8_t)(*((uint32_t*)& Para.Mode +(addr & 0x00FF)+i)); //取低8位数据 } } } else //地址不在范围内,报82错误码 { Errcmd_addr_data(g_recv_buff,2); return; } txbuffer[0] = Para.Addr; //设备地址 txbuffer[1] = 0x03; //功能码 txbuffer[2] = cnt*2; //读出的字节数 crc = usMBCRC16(txbuffer,cnt*2+3); //CRC校验值计算 crch = (uint8_t)(crc >> 8); crcl = (uint8_t)crc; txbuffer[3 + cnt * 2] = crch; //CRC高位数据地址 txbuffer[4 + cnt * 2] = crcl; //CRC低位数据地址 usart_send(txbuffer,cnt*2+5); //发送 break; default: Errcmd_addr_data(g_recv_buff,1); //错误码01 break; } } 有类似遇到的问题吗?求解,谢谢

    失败 485 通讯 GD32E230 TI ar

    1222浏览量 0回复量 关注量
  • IIC接口搭载了了ADS1115但是读取到的数据一直是65535

    如标题所示,AD显示的值一直是65535,但是仿真里是对的,有没有大佬看看怎么回事,都不知道该给哪纠错图片一直上传失败,感兴趣的大佬可以留下联系方式我来加 救救孩子吧

    ADS1115 iic接口 读取 仿真 兴趣 失败

    928浏览量 3回复量 关注量
  • N32G430C8L7 用官方下载工具出错 sos

    N32G430C8L7单片机在使用官方下载工具Nations MCU Download Tool 通过串口下载程序时出现“获取选项字节失败”,哪位大佬帮忙看看,第一次用这个单片机。

    N32G430C8L7 单片机 AD 失败 获取 使用

    1188浏览量 0回复量 关注量
  • 【锦锐单片机】仿真下载器下载程序失败,求助

    [i=s] 本帖最后由 礦ision5 于 2025-5-7 12:58 编辑 [/i] [backcolor=rgb(255, 255, 255)][color=#252525]使用锦锐仿真下载器下载CA51M151N2程序失败。CACHIP TOOL版本V3.9.9。仿真下载器没有故障,试着下载CA51F3的程序能下载成功。 [/color][attach]2400388[/attach][color=#252525] 怀疑是仿真下载器固件版本不对,点击固件更新失败。 [/color][attach]2400390[/attach] [/backcolor][color=#252525][backcolor=rgb(255, 255, 255)][font=Tahoma, "]按照操作一直按着BOOT键插入电脑点击升级也没有用,还是这样提示。 [/font][/backcolor][/color][attach]2400392[/attach][color=#252525][backcolor=rgb(255, 255, 255)][font=Tahoma, "] [/font][/backcolor][/color][color=#252525][size=14px]我按着红框中的按键,不知道有没有理解错。[/size][/color][color=#252525][backcolor=rgb(255, 255, 255)][font=Tahoma, "] 现在不知道是什么问题,求帮助。 [/font][/backcolor][/color]

    单片机 国产芯片 仿真 失败 下载程序

    1668浏览量 3回复量 关注量
  • GD32E230K8U6 烧录第一次可以成功,之后就全部失败

    GD32E230K8U6 使用JLINK烧录第一次可以烧录成功,之后就不可以了。提示如下图所示[img]data:image/png;base64,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[/img]

    GD32E230K8U6 JLINK 烧录 失败 成功

    5427浏览量 11回复量 关注量
  • STM32挂载FatFS系统写入SD卡,写入几十次左右一会就会失败 sos

    successNo.52 successNo.53 successNo.54 successNo.55 fiadNo.56 fiadNo.57 fiadNo.58 fiadNo.59 fiadNo.60 fiadNo.61 fiadNo.62 fiadNo.63 fiadNo.64 fiadNo.65 fiadNo.66 fiadNo.67 fiadNo.68 fiadNo.69 fiadNo.70 fiadNo.71 fiadNo.72 fiadNo.73 fiadNo.74 fiadNo.75 fiadNo.76 fiadNo.77 fiadNo.78 fiadNo.79 fiadNo.80 fiadNo.81 fiadNo.82 fiadNo.83 fiadNo.84 fiadNo.85 fiadNo.86 fiadNo.87 fiadNo.88 fiadNo.89 fiadNo.90 fiadNo.91 fiadNo.92 fiadNo.93 fiadNo.94 fiadNo.95 fiadNo

    单片机 嵌入式 FATFS SD卡 STM32 失败

    2280浏览量 0回复量 关注量
  • GD32F103C8T6,使用ST标准库,CAN初始化失败

    [i=s] 本帖最后由 fw19876311 于 2025-1-14 17:01 编辑 [/i] STM32F103C8T6正常运行的代码,直接平替GD32F103C8,CAN部分初始化异常,一直返回失败 [b]uint8_t CAN_Init(CAN_TypeDef* CANx, CAN_InitTypeDef* CAN_InitStruct)[/b][b]{[/b] [b]uint8_t InitStatus = CAN_InitStatus_Failed;[/b] [b] uint32_t wait_ack = 0x00000000;[/b][b] /* Check theparameters*/[/b][b]assert_param(IS_CAN_ALL_PERIPH(CANx));[/b][b]assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_TTCM));[/b] [b]assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_ABOM));[/b] [b]assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_AWUM));[/b] [b]assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_NART));[/b] [b]assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_RFLM));[/b] [b]assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->CAN_TXFP));[/b] [b]assert_param(IS_CAN_MODE(CAN_InitStruct->CAN_Mode));[/b] [b]assert_param(IS_CAN_SJW(CAN_InitStruct->CAN_SJW));[/b] [b]assert_param(IS_CAN_BS1(CAN_InitStruct->CAN_BS1));[/b] [b]assert_param(IS_CAN_BS2(CAN_InitStruct->CAN_BS2));[/b] [b] assert_param(IS_CAN_PRESCALER(CAN_InitStruct->CAN_Prescaler));[/b][b] /* Exit from sleep mode */[/b] [b]CANx->MCR &= (~(uint32_t)CAN_MCR_SLEEP);[/b][b] /* Request initialisation */[/b] [b]CANx->MCR |= CAN_MCR_INRQ ;[/b][b] /* Wait the acknowledge */[/b] [b]while (((CANx->MSR & CAN_MSR_INAK) != CAN_MSR_INAK) && (wait_ack != INAK_TIMEOUT))[/b][b] {[/b][b] wait_ack++;[/b][b] }[/b][b] /* Check acknowledge */[/b] [b]if ((CANx->MSR & CAN_MSR_INAK) != CAN_MSR_INAK)[/b] [b]{[/b][b] InitStatus = CAN_InitStatus_Failed;=====================卡在这个位置[/b][b] }[/b] [b]请教各位,有遇到过吗?麻烦指导下,谢谢大家![/b]

    gd32F103 国产芯片 ST 失败 CAN 使用

    5089浏览量 21回复量 关注量
  • 用的凌鸥07系列芯片烧录官方CAN例程输出数据失败

    [i=s] 本帖最后由 ZDRenlc 于 2024-12-21 16:13 编辑 [/i] 问题:用凌鸥LKS32MC071CBT8芯片配套的官方CAN例程,烧进去结果输出波形很乱,不知道该怎么解决? 描述: 1、板子和CAN模块的连线没有问题,已查看多次。 2、使用的是CAN外回环模式的代码烧录进芯片进行测试,用CAN盒接收数据,但在CANPro上未显示接收到数据。 3、在主函数中用变量接收发送函数的返回值,在窗口中显示的是0xff,其含义是错误。 4、用keil仿真下来,断点执行查看TBUF0发送缓冲寄存器也是空的(按理应该有数据)。 5、查看CAN_EALCAP寄存器又说有位错误,但是这是外回环模式按理说不该有这个问题啊。 6、对照手册看了一遍官方代码,感觉没啥问题,但是也找不到硬件的问题。 所以请各位帮忙找下解决问题的方向,感谢。

    凌鸥 CAN例程 失败 输出 系列芯片 烧录

    1944浏览量 3回复量 关注量
  • 21网站用家园币兑换物品,什么时候发货 赏100家园币

    事情是这样的,我12月3日兑换了一个物品,运费也付了,家园币显示扣除,但实际账号家园币还在,那我这物品是兑换成功还是失败?运费15元是扣除了,家园币还在,请问这是什么情况?有没有人兑换过,比较了解,求告知一下情况,谢谢!

    网站 失败 成功 实际

    7789浏览量 22回复量 关注量
  • AT32F407 SDIO接口进行1线IO通讯时写操作失败。 sos

    在使用AT32F407 SDIO接口进行IO通讯时(没有SD卡,只是IO通讯),进行写操作过程时,能够将数据传输到slaver且slaver端数据接收是正确的,但AT32F407端(host)报SD_DATA_FAIL这样的错误。 注:案例来自[color=#444444][font=Tahoma,] [/font][/color][color=#444444][font=Tahoma,]AT32F403A_407_Firmware_Library_V2.1.8[/font][/color]

    单片机 国产芯片 嵌入式 sd 失败 操作

    667浏览量 0回复量 关注量