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