本帖最后由 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亮灭。
无法上传图片,见谅
-----------------------完--------------------------------
|