Quantcast
Channel: Counter/Timer topics
Viewing all articles
Browse latest Browse all 1250

STM32F4 - Reading general purpose timer count

$
0
0

There seems to be a little bit of trouble when I run this code.

The situation is following,I'm using the STM32F4 HAL library on an emulated [in QEMU] STM32F4 Discovery board, and trying to configure TIM2 (general purpose timer) and read its' count register (without an interrupt). Currently I'm always getting 0 when attempting to read the timer counter with

uint32_t count = __HAL_TIM_GetCounter(&hTim2);

I don't want to move on to using an interrupt just yet, until I get this step working. Taking it step by step.

Here's how I configured the timer so far:

__initialize_hardware.c

__TIM2_CLK_ENABLE();// Enable the TIM2 clock// ...Timer_Init();

timer.h

TIM_HandleTypeDef hTim2;

timer.c

#include"timer.h"voidTimer_Init(void){
    hTim2.Instance= TIM2;
    hTim2.Init.Prescaler=40000;
    hTim2.Init.CounterMode= TIM_COUNTERMODE_UP;
    hTim2.Init.Period=500;
    hTim2.Init.ClockDivision= TIM_CLOCKDIVISION_DIV1;
    HAL_TIM_Base_Init(&hTim2);

    HAL_TIM_Base_Start(&hTim2);// Trying to start the base counter}void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base){if(htim_base->Instance== TIM2){
        __TIM2_CLK_ENABLE();}}void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base){if(htim_base->Instance== TIM2){
        __TIM2_CLK_DISABLE();}}

then in main.c

int main(int argc,char* argv[]){while(1){uint32_t count = __HAL_TIM_GetCounter(&hTim2);
        trace_printf("%lu\n", count);}}

I'm always getting 0 in count above, not sure why? Can anyone please offer some advice for my program?

Thanks


Viewing all articles
Browse latest Browse all 1250

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>