stm32用c语言编程,stm32的程序用c语言写的求助

1,stm32的程序用c语言写的求助将leftInfrad和rightInfrad转成浮点数,除以10后, 保留一位小数输出到report字符串中 。比如 如果leftInfrad=23rightInfrad=18那么 执行后,report字符串为"ADC1 = 2.3 cm ADC2= 1.8 cm\r\n"count%16 , 实际就是只保留了低四位,就和高四位的变化无关 。比如说count从15变成16的时候,即0x0f变成0x10,但是count%16运算的结果就是0 。或者从17变成31(0x11->0x1f),count%16的结果还是0x01~0x0f 。你改成count&0x0f效果也一样,并且这样看着更直观 。【stm32用c语言编程,stm32的程序用c语言写的求助】
2 , 需要stm32的c语言设计程序没学过单片机,有c语言基础,是能直接学习stm32的 。因为STM32是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-0内核而设计的,属于高级单片机,其可以使用汇编语言编写程序 , 也可使用c语言编写程序,而且很多使用stm32单片机的人都是使用c语言编写程序,所以通过一本详细讲解stm32的书籍直接学习是完全可行的 。将leftinfrad和rightinfrad转成浮点数,除以10后, 保留一位小数输出到report字符串中 。比如 如果leftinfrad=23rightinfrad=18那么 执行后,report字符串为"adc1 = 2.3 cm adc2= 1.8 cm\r\n"
3,mdk编译stm32单片机的c语言程序for(i=4;i<66;i=i+2)//你原来写的是for(i=4;i<66;i+2),i+2是什么意思?//i++是 i = i+1, i+2可不是 i = i+2的意思if( i==4 )pjz=sz[4];pjz=(pjz+sz[i])/2 ;//求上个数与当前数的平均值!}单片机中每个寄存器或者io口都有一个固定的地址,所以无论是gpioa还是什么外设都是以地址的方式存在的,可以向上跟踪来看下头文件对其做了什么处理这个断言宏是用来判断传入的地址是否为gpiox(a...g)基址中的一个,那么只要其类型匹配则即是正确的用法 。参考下http://wenku.baidu.com/view/fa323919c5da50e2524d7f6e.html你的“i+2”加完没有保存到i,你加了也没有用?。32sum = 0;for(i=0;i<32;i++)sum += sz[4+2*i];}pjz = sum / 32;

    推荐阅读