szzs1 发表于 2018-3-17 15:23:57

STML151和HX711做电子秤

STML151和HX711做电子秤出来的数据一直是0,求大佬帮忙看看。
void MX_GPIO_Init(void)
{

GPIO_InitTypeDef GPIO_InitStruct;

/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOA_CLK_ENABLE();

/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET);

/*Configure GPIO pin : PA1 DT */
GPIO_InitStruct.Pin = GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

/*Configure GPIO pin : PA2 SCK PA1 DT*/
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

}

int main(void)
{


HAL_Init();

SystemClock_Config();

MX_GPIO_Init();
t=0;
       
while (1)
{
                HAL_GPIO_WritePin(GPIOA, 1, GPIO_PIN_SET);//PA1 DT 1
    HAL_GPIO_WritePin(GPIOA, 2, GPIO_PIN_RESET);//PA2 SCK 0
                Count=0;
                while(HAL_GPIO_ReadPin(GPIOA, 1));
                delay_us(1);
                for(i=0;i<24;i++)
                {
                HAL_GPIO_WritePin(GPIOA, 2, GPIO_PIN_SET);//PA2 SCK 1
                Count=Count<<1;
                delay_us(1);
                HAL_GPIO_WritePin(GPIOA, 2, GPIO_PIN_RESET);//PA2 SCK 0
                if(HAL_GPIO_ReadPin(GPIOA, 1))
                Count++;
                delay_us(1);
                }
                HAL_GPIO_WritePin(GPIOA, 2, GPIO_PIN_SET);//PA2 SCK 1
                delay_us(1);
                HAL_GPIO_WritePin(GPIOA, 2, GPIO_PIN_RESET);//PA2 SCK 0
                delay_us(1);
                result=Count;
                t++;
}


}

feixiang20 发表于 2018-3-17 22:17:15

可能出在参数上,检查你的循环

dsjsjf 发表于 2018-3-20 10:53:54

HAL_GPIO_WritePin(GPIOA, 1, GPIO_PIN_SET);//PA1 DT 1你的这个函数实际操作的是PA0
HAL_GPIO_WritePin(GPIOA, 2, GPIO_PIN_RESET);//PA2 SCK这个函数实际操作的是PA1

库中是这样定义的
/** @defgroup GPIO_pins_define GPIO pins define
* @{
*/
#define GPIO_PIN_0               ((uint16_t)0x0001)/* Pin 0 selected    */
#define GPIO_PIN_1               ((uint16_t)0x0002)/* Pin 1 selected    */
页: [1]
查看完整版本: STML151和HX711做电子秤