STM32CUBE_MX_STM32F030C8T6_USART_TX应用

来源:互联网 发布:windows rt刷安卓 编辑:程序博客网 时间:2024/06/18 17:58

初始设置:SYS  :debug_serial_write  勾选   timebase_source选择systick      RCC:默认内部时钟所有不需要做任何修改

需要注意的是:如果想用IWDG,则在调试代码时需要先关闭之,否则系统不能正常运行,下面开始设置USART,如下图

接着设置通讯参数(之前的系统时钟配置为48MHz):

             

补充一下,这里要实现的是把txbuf数组中的10个字节的数据利用定时器17的溢出中断每隔500ms从TX口发送一次,下面设置定时器



Tout=(24000*1000)/48000000=0.5S计数周期

记得设置中断,如下图


到此CUBE设置完成

重点在下面哦

在主函数初始化部分进行

使能USART发送和定时器17

定义发送数组

u8 txbuf[10] = {0,1,2,3,4,5,6,7,8,9};


在stm32f0xx_it.c中有如下语句,其中

 HAL_TIM_IRQHandler(&htim17);找到后goto definition到函数定义处,找到溢出中断对应的回调函数
void TIM17_IRQHandler(void){  /* USER CODE BEGIN TIM17_IRQn 0 */  /* USER CODE END TIM17_IRQn 0 */  HAL_TIM_IRQHandler(&htim17);  /* USER CODE BEGIN TIM17_IRQn 1 */  /* USER CODE END TIM17_IRQn 1 */}

  /* TIM Update event */  if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)  {    if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) !=RESET)    {      __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);      HAL_TIM_PeriodElapsedCallback(htim);    }  }

HAL_TIM_PeriodElapsedCallback(htim),这个函数就是我们要写的中断服务函数,由于cube在代码中有弱定义_weak,我们直接复制
/* USER CODE BEGIN 1 */void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){    HAL_UART_Transmit(&huart2,&txbuf[0],sizeof(txbuf),100);  //这个就是我们加入的中断服务程序,每500ms进入中断一次  }/* USER CODE END 1 */


文中写的粗略一些,根据自己使用环境再进行详细编写!