久芯网

关于CubeMX 在STM32F107 上的httpwebserver 问题

avatar gunmato-327708 提问时间: 2023-09-19 08:17:07 / 未解决
各位大侠兄弟我最近正在使用cubeMX 工具开发一个websever的项目,
程序各个功能运行争产,但唯独ADC 采样在web上没有显示,请问谁有相关成功经验分享一下.
一下是ADC handle代码,httpd.c我没有做修改,直接调用相关函数,LED页面可以控制,工作正常,
就是涉及到SSI 有问题。
u16_t ADC_Handler(int iIndex, char *pcInsert, int iInsertLen)
{

  /* We have only one SSI handler iIndex = 0 */
  if (iIndex ==0)
  {  
    char Digit1=0, Digit2=0, Digit3=0, Digit4=0;
    uint32_t ADCVal = 0;        
     /* configure ADC if not yet configured */
     HAL_ADC_Start(&hadc1);
     HAL_ADC_PollForConversion(&hadc1, 10);
     /* get ADC conversion value */
     ADCVal =  HAL_ADC_GetValue(&hadc1);
     
     /* convert to Voltage,  step = 0.8 mV */
     ADCVal = (uint32_t)(ADCVal * 0.8);  
     /* get digits to display */
  //   printf("%s\r\n", ADCVal);
     Digit1= ADCVal/1000;
     Digit2= (ADCVal-(Digit1*1000))/100;
     Digit3= (ADCVal-((Digit1*1000)+(Digit2*100)))/10;
     Digit4= ADCVal -((Digit1*1000)+(Digit2*100)+ (Digit3*10));
        
     /* prepare data to be inserted in html */
     *pcInsert       = (char)(Digit1+0x30);
     *(pcInsert + 1) = (char)(Digit2+0x30);
     *(pcInsert + 2) = (char)(Digit3+0x30);
     *(pcInsert + 3) = (char)(Digit4+0x30);  
   
    /* 4 characters need to be inserted in html*/
    return 4;
  }

  return 0;
}


如需获得 STM32F107 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

3个回答
  • avatar 废鱼
    回答时间: 2023-09-19 08:33:58

    楼主最好是用仿真的方式看一下,调用这个函数后,执行结果是否按格式填充到数据空间中,注意index这个值,入口是否为0。 数字转换,可以使用sprintf进行,这样也能避免自己写代码错误后,不能正确显示内容。

  • avatar gunmato-327708
    回答时间: 2023-09-19 08:51:10
    安 发表于 2020-9-28 15:37
    楼主最好是用仿真的方式看一下,调用这个函数后,执行结果是否按格式填充到数据空间中,注意index这个值, ...

    好的,谢谢,我尝试监控一下这个index变量,看看能不能进入IF语句

  • avatar gunmato-327708
    回答时间: 2023-09-19 09:08:44

    谢谢,2楼,问题已经搞定

会员中心 微信客服
客服
回到顶部