關於stm32cube配置編碼器的問題,求指點
附上部分程序
struct pp
{
int puse_count;
int loop_num;
int true_puse;
};
struct pp puse;
struct pp p;
主函數
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM1_Init();
MX_USART1_UART_Init();
puse.loop_num =0;
while (1)
{
p.loop_num=puse.loop_num;
puse.puse_count=p.puse_count;
p.puse_count=__HAL_TIM_GET_COUNTER(&htim1);
if(p.loop_num==0)p.true_puse=p.puse_count;
else p.true_puse=p.loop_num*10000+p.puse_count-10000;
printf("¼ÆÊýֵΪ%d\t\n",p.true_puse);
HAL_Delay(1000);
}
}
更新中斷服務函數
void TIM1_UP_IRQHandler(void)
{
/* USER CODE BEGIN TIM1_UP_IRQn 0 */
if(puse.puse_count>10000)
puse.loop_num++;
if(puse.puse_count<10000)
puse.loop_num--;
__HAL_TIM_SET_COUNTER(&htim1,10000);
/* USER CODE END TIM1_UP_IRQn 0 */
HAL_TIM_IRQHandler(&htim1);
/* USER CODE BEGIN TIM1_UP_IRQn 1 */
/* USER CODE END TIM1_UP_IRQn 1 */
}
![這是cube中TIM1的相關配置](https://img-blog.csdn.net/20170908142415962)
然後程序運行讀不到數據,編碼器的輸入沒有讀到,希望可以指點一下是哪裏配置的問題,謝謝
struct pp
{
int puse_count;
int loop_num;
int true_puse;
};
struct pp puse;
struct pp p;
主函數
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM1_Init();
MX_USART1_UART_Init();
puse.loop_num =0;
while (1)
{
p.loop_num=puse.loop_num;
puse.puse_count=p.puse_count;
p.puse_count=__HAL_TIM_GET_COUNTER(&htim1);
if(p.loop_num==0)p.true_puse=p.puse_count;
else p.true_puse=p.loop_num*10000+p.puse_count-10000;
printf("¼ÆÊýֵΪ%d\t\n",p.true_puse);
HAL_Delay(1000);
}
}
更新中斷服務函數
void TIM1_UP_IRQHandler(void)
{
/* USER CODE BEGIN TIM1_UP_IRQn 0 */
if(puse.puse_count>10000)
puse.loop_num++;
if(puse.puse_count<10000)
puse.loop_num--;
__HAL_TIM_SET_COUNTER(&htim1,10000);
/* USER CODE END TIM1_UP_IRQn 0 */
HAL_TIM_IRQHandler(&htim1);
/* USER CODE BEGIN TIM1_UP_IRQn 1 */
/* USER CODE END TIM1_UP_IRQn 1 */
}
![這是cube中TIM1的相關配置](https://img-blog.csdn.net/20170908142415962)
然後程序運行讀不到數據,編碼器的輸入沒有讀到,希望可以指點一下是哪裏配置的問題,謝謝
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.