gunmato-327708 发表于 2020-9-28 13:21:35

关于CubeMX 在STM32F107 上的httpwebserver 问题

各位大侠兄弟我最近正在使用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;
}

发表于 2020-9-28 15:37:45

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

gunmato-327708 发表于 2020-9-28 16:59:59

安 发表于 2020-9-28 15:37
楼主最好是用仿真的方式看一下,调用这个函数后,执行结果是否按格式填充到数据空间中,注意index这个值, ...

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

gunmato-327708 发表于 2020-9-28 19:05:04

谢谢,2楼,问题已经搞定
页: [1]
查看完整版本: 关于CubeMX 在STM32F107 上的httpwebserver 问题