找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5645|回复: 1
收起左侧

STM32L476编译环境的搭建及串口调试

[复制链接]
ID:127084 发表于 2016-6-17 21:46 | 显示全部楼层 |阅读模式
内载了demo程序,上电如图所示。
   0.png 0.png
首先,说一下环境的搭建。
万事开头难,这句话也应验在STM32L476的调试中。因为我使用的编译环境是keil5.11,这里怎么都找不到stm32L476的影子。于是乎,尝试安装keil5.15,记得之前我在一台机子上,调试GD103的时候,也遇到如此问题。所以,这个问题对于我来说,可能比较容易,但是对于没有使用高版本keil的TX来说,有点小难。
其次,说一下串口模块的调试。
随着点击蓝色按钮的次数不同,绿色闪烁灯的闪烁频率也不同(三种轮训进行)。
有了指示灯的显示,无疑减少了开发的难度。
一般上,玩一个开发板,都是从指示灯和信号数据开始的。既然有了指示灯,那就继续开始通信接口的调试吧。先从串口开始。
在通信接口中,串口是比较简单,而且常用的接口。
由原理图文档《MB1136.pdf》的截图,我们选择PA9/PA10作为调试串口管脚。
0.png
我做了三个实验:
第一个实验:串口对发。利用软件包中提供的串口例程,有中断方式,有polling方式,但前提都是需要两块板子。借助于之前调试过的stm32f072开发板。

http://v.youku.com/v_show/id_XMTM3MDk5MDU4MA==.html

第二个实验:串口发数据到PC。从第一个实验的难度想到的,借助于PC无意更简单。
http://v.youku.com/v_show/id_XMTM3MDk5ODMzNg==.html

第三个实验:串口加定时器,按照预先设定的时间间隔,经串口发送数据到PC。
http://v.youku.com/v_show/id_XMTM3MTAwNDEwNA==.html

实验完成之后,对串口代码调试中遇到的问题,进行总结。
第一,  习惯于STM32F407的代码调试之后,突然发现,nucleo版本的代码库,突然让我找不到方向。着急之下,我强行把代码移植过来,然后边编译,边改写宏等代码定义。IO口的修改完成之后,突然发现串口代码完全不同,而且中断都没有找到。放下板子,冷静了两天,重新拾起L476的代码之后,心里在想,既然工程师把这样的代码整理成包,就说明必有高明之处。于是乎,开始静下心来,研究代码。
第二,  研究串口代码N天之后,感觉到代码的高明之处,内心非常钦佩如此的代码逻辑安排。其实,对于底层驱动代码熟悉的工程师或者兴趣爱好者来说,可能这不算的什么,但能写出一套驱动代码,也并非一蹴而就。明白之后,顿觉收获匪浅。
第三,  实验简单,但耗费我几天的功夫,希望后续更多模块调试成功。比如12864的调试,激光测距调试,频率合成器调试等等,都是我最擅长的调试。

【经验】
  
1、 小结
  
(1)  main开始,进行模块初始化;初始化过程中,包含管脚的功能定义,并会调用stm32l4xx_hal_tim.c或者stm32l4xx_hal_spi.c (驱动文件);
  
(2)  驱动文件中,会调用HAL_TIM_Base_MspInit(htim)或者HAL_SPI_MspInit(htim);
  
(3)  HAL_TIM_Base_MspInit(htim)或者HAL_SPI_MspInit(htim)函数中,包含有中断的初始化;同时,在stm32l4xx_it.c内,定义中断函数;
  
中断函数会再次调用驱动文件stm32l4xx_hal_tim.c或者stm32l4xx_hal_spi.c内的xxxxHandle函数(比如:HAL_TIM_IRQHandler函数),该函数内有相应的回调函数,回调函数内,用户可以自由发挥,比如定时器中断时要干啥,或者接收到数据等等。

回复

使用道具 举报

ID:494414 发表于 2019-5-28 16:55 | 显示全部楼层
代码在哪里
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表