请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于CubeMX 在STM32F107 上的httpwebserver 问题

[复制链接]
gunmato-327708 提问时间:2020-9-28 13:21 /
各位大侠兄弟我最近正在使用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;
}

收藏 评论3 发布时间:2020-9-28 13:21

举报

3个回答
废鱼 回答时间: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楼,问题已经搞定
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版