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++;
}
}
可能出在参数上,检查你的循环 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]