打印
[其他ST产品]

【STM32G4评测+02+MDK+Stm32cube +定时器】

[复制链接]
406|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dami|  楼主 | 2021-3-27 18:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dami 于 2021-3-27 18:20 编辑

【STM32G4评测+02+MDK+Stm32cube工程搞定多串口定时器】
1,打开Stm32cube,升级到最新的6.20。
2,配置板子为nucleo-STM32G491RE。
3,配置Tim3,时钟为内部时钟,(因为是选的板子所以串口一默认打开的,ld2也是配置好了的)。
    中断允许,设置好定时器时间.
4,生成代码。
5,用mdk打开。
6,工程中startup_stm32g491xx.s没加上所以编译有错。加上。
7,实验目标:通过定时器定时点亮和熄灭LD2。从串口1打印数据输出ld2的状态。
8,增加接收处理语句。  
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
uint32_t sent_tim1=0,sent_tim2=0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
        if(htim == &htim3)
        {
                if((sent_tim1++)>10000)
                        sent_tim1 =0;
                if((sent_tim2++)>10000)
                        sent_tim2 =0;
        }
}
/* USER CODE END 0 */
/**
  * [url=home.php?mod=space&uid=247401]@brief[/url]  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */
  /* MCU Configuration--------------------------------------------------------*/
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /* USER CODE BEGIN Init */
  /* USER CODE END Init */
  /* Configure the system clock */
  SystemClock_Config();
  /* USER CODE BEGIN SysInit */
  /* USER CODE END SysInit */
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_I2C1_Init();
  MX_LPUART1_UART_Init();
  MX_UART4_Init();
  MX_USART3_UART_Init();
  MX_TIM3_Init();
  /* USER CODE BEGIN 2 */
  HAL_TIM_Base_Start_IT(&htim3);
        uint8_t buf_T[]={"ld2 on:\n\r"};
        uint8_t buf_H[]={"ld2 off :\n\r"};
  /* USER CODE END 2 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
          static uint8_t first_f1=0;
                if(sent_tim1 > 8000)
                {
                        sent_tim1 =0;first_f1 =0;
                        HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
                        HAL_UART_Transmit(&hlpuart1,buf_T,sizeof(buf_T),0xffff);
                }
                else
                {
                        if((sent_tim1 > 4000)&&(first_f1==0))
                        {
                                first_f1 =1;
                                HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
              HAL_UART_Transmit(&hlpuart1,buf_H,sizeof(buf_H),0xffff);
                        }
                }        
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}
9,编译,连接板子下载程序。10,用putty观察串口定时交替发出ld2 on,ld2 off同时ld亮灭。
无法上传图片,见谅
                       -----------------------完--------------------------------


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

1050

帖子

6

粉丝