搜索
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[其他ST产品] ST评测+STM32G431RBT6+UART1TX模式测试

[复制链接]
13|1
 楼主 | 2020-9-14 18:01 | 显示全部楼层 |阅读模式
板子是上周五收到的,板子的质量一眼看上去就感觉高大上,板子直接集成了STLink-V3,不需要我们外接STLink,我们直接通过一根USB线就可以实现仿真下载了,非常方便。
IMG_20200914_170400.jpg
有了开发版,我们就需要找资料了,首先是原理图,板子的包装壳背面有提供一个网址,所有的资料都可以在那个网址里面找到。原理图:下载链接:https://www.stmcu.com.cn/Designresource/design_resource_detail?file_name=NUCLEO_G431RB_STM32Nucleo_64%E5%BC%80%E5%8F%91%E6%9D%BF
对应的下载驱动:
https://www.stmicroelectronics.com.cn/content/st_com/zh/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-g431rb.html#overview
在ST的官网上去下载芯片支持包和官方提供的函数库,已经芯片资料等。:(https://www.st.com/zh/microcontrollers-microprocessors/stm32g4x1.html#)
资料下载完全以后,就可以便以自己的代码了。(注:STlink-V3貌似需要支持Keil5-V5.26及以上的版本,如果版本KEIL5版本过低,会出现仿真时时,下不进去现象)

IMG_20200914_172009.jpg
我这次测评直接在官方提供的库函数基础上稍作修改,做的UART1的发送实验。看原理图,可以知道板上引出来的TX、RX分别对应芯片PC4(Pin22)和PC5(Pin23)。
0PJYOK]UIJ{R}@D3)6BEJL6.png X]E{%Z]36K`{1[FI]4HTEG7.png
UART1的配置函数:选择UART1,波特率为115200,8位数据位,1位停止位,无校验位
static void MX_USART1_UART_Init(void)
{

  /* USER CODE BEGIN USART1_Init 0 */

  /* USER CODE END USART1_Init 0 */

  LL_USART_InitTypeDef USART_InitStruct = {0};

  LL_GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* Peripheral clock enable */
  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1);
   LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOC);
  /**USART1 GPIO Configuration
  PA9   ------> USART1_TX
  PA10   ------> USART1_RX
  */
        GPIO_InitStruct.Pin = LL_GPIO_PIN_4;
  GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
  GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
  GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
  GPIO_InitStruct.Alternate = LL_GPIO_AF_7;
  LL_GPIO_Init(GPIOC, &GPIO_InitStruct);

  GPIO_InitStruct.Pin = LL_GPIO_PIN_5;
  GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
  GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
  GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
  GPIO_InitStruct.Alternate = LL_GPIO_AF_7;
  LL_GPIO_Init(GPIOC, &GPIO_InitStruct);

  /* USER CODE BEGIN USART1_Init 1 */

  /* USER CODE END USART1_Init 1 */
  USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1;
  USART_InitStruct.BaudRate = 115200;
  USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
  USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
  USART_InitStruct.Parity = LL_USART_PARITY_NONE;
  USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;
  USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
  USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;
  LL_USART_Init(USART1, &USART_InitStruct);
  LL_USART_SetTXFIFOThreshold(USART1, LL_USART_FIFOTHRESHOLD_1_8);
  LL_USART_SetRXFIFOThreshold(USART1, LL_USART_FIFOTHRESHOLD_1_8);
  LL_USART_DisableFIFO(USART1);
  LL_USART_ConfigAsyncMode(USART1);

  /* USER CODE BEGIN WKUPType USART1 */

  /* USER CODE END WKUPType USART1 */

  LL_USART_Enable(USART1);

  /* Polling USART1 initialisation */
  while((!(LL_USART_IsActiveFlag_TEACK(USART1))) || (!(LL_USART_IsActiveFlag_REACK(USART1))))
  {
  }
  /* USER CODE BEGIN USART1_Init 2 */

  /* USER CODE END USART1_Init 2 */

}

PZU7M8XJ3E72RO`IX}%LI.png
IMG_20200914_165838.jpg V4C392$V[GZ{v{)MUIQQU.png

使用特权

评论回复
| 2020-9-14 18:15 | 显示全部楼层
感谢楼主的分享,我仔细的看了一下,学到了很多知识。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表