最近cubemx的功能越来越强大了,省去一些懒人和入门者的时间,
笔者虽然不喜欢,但也想尝试一下下。
下面开始从新建cubemx工程开始
1.打开cubemx软件
2.新建工程
根据板载芯片的实际情况,在弹出的界面进行如下设置,如图
3.点击“OK”,正式进入工程,如下图所示
在左侧开始进行设置,本次主要的目的是配置usart1,led2个,加上freertos系统,所以选择如下图
USART1对应的IO
LED对应io如下
系统时钟设置如下
保存,生成keilv5工程
打开工程,后
在main.c中增加虚拟串口功能
添加如下代码即可直接用printf打印调试信息,115200,8,1,
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
IO初始化
void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOJ_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOJ, GPIO_PIN_13|GPIO_PIN_5, GPIO_PIN_RESET);
/*Configure GPIO pins : PJ13 PJ5 */
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOJ, &GPIO_InitStruct);
}
串口1初始化
void MX_USART1_UART_Init(void)
{
huart1.Instance = USART1;
huart1.Init.BaudRate = 115200;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart1) != HAL_OK)
{
Error_Handler();
}
}
初始化完成后,开始调用
/* StartDefaultTask function */
void StartDefaultTask(void const * argument)
{
/* USER CODE BEGIN StartDefaultTask */
/* Infinite loop */
for(;;)
{
counter++;
switch(counter%2)
{
case 1: J5_ON; J13_OFF;printf("J5_ON\n");break;
case 2: J5_OFF; J13_ON;printf("J13_ON\n");break;
}
osDelay(500);
}
/* USER CODE END StartDefaultTask */
}
就可以看见led在闪烁了
今天进到这了
下次开始lwip的裸奔及加freertos系统
点击此处,查看STM32F769I开发板官方资源。 本帖最后由 star_66666 于 2016-12-16 00:53 编辑