5093|0

156

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【NUCLEO-L4R5ZI评测】点灯&使用板载串口发送 [复制链接]

本帖最后由 donatello1996 于 2018-1-14 21:29 编辑

    俗话说万物皆从点灯开始,这次帖子就操作GPIO和STLINK串口。
    由于L4+系列需要用到CubeL4 1.10最新版本的固件库,之前的1.7-1.9版本固件库都没法使用,所以要去官方更新最新版本,这里顺便给出下载链接:
固件下载地址



然后,将STLINK的USB接口插上电脑,装好驱动之后可以被电脑识别为STLINK仿真接口+虚拟串口:

在官网下载电路图,这里直接给出:
Nucleo-L4XX电路图.pdf (2.06 MB, 下载次数: 10)
打开L4+板子的电路图,得知STLINK串口与板子的LPUART1串口相连,引脚为PG7和PG8,需要注意的是,在CubeMX中,LPUART1默认引脚为PC0和PC1,我们需要手动将引脚改回来:

板载红色LED灯LD3与PG14相连,在CubeMX中启用即可GPIO_Output模式即可:

LD1本期帖子不理会:

到了主频设置界面,直接将系统主频设置为官方默认主频120MHz,输出120回车后,CubeMX会提示该主频与时钟源不匹配,只需直接回车跟随软件设置即可:

来到外设设置界面,打开LPUART1设置窗口,将波特率设置为115200,数据位设置为8位:

打开工程设置界面,设置固件库为HAL库(本期帖子讲解HAL库,以后讲解LL库):

设置固件库存放地址,也就是上面提到的要下载的固件:

设置好之后生成工程文件夹:

打开工程配置界面,勾选MicroLIB复选框,以支持printf函数输出:

工程烧录设置中有一点需要注意,选择FLASH的型号必须为STM32L4Rx 2MB Flash Dual,不能选错,否则会提示一连串的Contents mismatch at: 08001001H错误:

工程配置完毕之后就可以写代码了,来看看LPUART1串口初始化代码:
  1. void LPUART1_Init(int baud)
  2. {
  3.         HAL_PWREx_EnableVddIO2();
  4.         __HAL_RCC_GPIOG_CLK_ENABLE();
  5.   GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8;
  6.   GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  7.   GPIO_InitStruct.Pull = GPIO_PULLUP;
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  9.   GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
  10.   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);

  11.         __HAL_RCC_LPUART1_CLK_ENABLE();
  12.   LPUART1_Handler.Instance = LPUART1;
  13.   LPUART1_Handler.Init.BaudRate =baud;
  14.   LPUART1_Handler.Init.WordLength = UART_WORDLENGTH_8B;
  15.   LPUART1_Handler.Init.StopBits = UART_STOPBITS_1;
  16.   LPUART1_Handler.Init.Parity = UART_PARITY_NONE;
  17.   LPUART1_Handler.Init.Mode = UART_MODE_TX_RX;
  18.   LPUART1_Handler.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  19.   LPUART1_Handler.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  20.   LPUART1_Handler.Init.ClockPrescaler = UART_PRESCALER_DIV1;
  21.   LPUART1_Handler.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  22.   LPUART1_Handler.FifoMode = UART_FIFOMODE_DISABLE;
  23.   HAL_UART_Init(&LPUART1_Handler);

  24.   HAL_UARTEx_SetTxFifoThreshold(&LPUART1_Handler, UART_TXFIFO_THRESHOLD_1_8);
  25.   HAL_UARTEx_SetRxFifoThreshold(&LPUART1_Handler, UART_RXFIFO_THRESHOLD_1_8);

  26. }
复制代码



延时函数代码:
[mw_shl_code=c,false]void Delay_us(int n)
{
        while(n--);
}

void Delay_ms(int n)
{
                while(n--)
                        Delay_us(1000);
}[/code]

main函数代码:
[mw_shl_code=c,false]int main()
{

  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  LPUART1_Init(115200);
        printf("\nEEWORLD论坛 stm32/stm8专区\n");
        printf("【NUCLEO-L4R5ZI评测】点灯&使用板载串口发送\n");
        printf("donatello1996\n");
  while (1)
  {
                HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_14);
                Delay_ms(100);
  }

}[/code]

闪灯效果:

上传工程文件:
工程文件.zip (1.78 MB, 下载次数: 20)


此帖出自单片机论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表