你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-L476RG开发】外部高速时钟HSE开启

[复制链接]
Inc_brza 提问时间:2015-10-29 16:43 /
       进来论坛了,到处都是看到大家为了抢板子赚ST币疯狂刷评论,好吧,小弟也有幸抢到一个板子,不过,做技术的进来看到论坛这么对的水帖子,未免觉得有几分失望。L4玩得也差不多了,本来也想玩玩他的低功耗和LCD驱动,再移植操作系统进去的,不过算了,毕竟没有什么意义!小弟的板子已经送给了小伙伴了。今天分享最后一个帖子后也算是回报社区送我L4板子玩,虽然技术含量不高。
       很多人接触这些Nucleo估计都是用的内部时钟来玩的,但是我发现L4的MSI并不好用,可能是我设置的不好吧,用的也是HAL提供的Demo配置,
波特率设置115200总会出现乱码,毕竟自己用惯了外部时钟,所以就焊接一个16Mhz的晶振上去了,用外部晶振的时候,记得还要焊接上两个短路电阻和晶振
的起振电容,22p就行了,比较通用。
QQ截图20151029163528.jpg

关于代码配置:
首先在stm32l4xx_conf.h中的HSE_VALUE改为16 000 000,
然后下面是正式的代码配置:
  1. RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  2.   RCC_OscInitTypeDef RCC_OscInitStruct = {0};

  3.   /* MSI is enabled after System reset, activate PLL with MSI as source */
  4.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  5.   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  6.   //RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6;
  7.   //RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT;
  8.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  9.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  10.   RCC_OscInitStruct.PLL.PLLM = 1;
  11.   RCC_OscInitStruct.PLL.PLLN = 10;
  12.   RCC_OscInitStruct.PLL.PLLP = 7;
  13.   RCC_OscInitStruct.PLL.PLLR = 2;
  14.   RCC_OscInitStruct.PLL.PLLQ = 2;
  15.   if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  16.   {
  17.     /* Initialization Error */
  18.     while(1);
  19.   }

  20.   /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
  21.      clocks dividers */
  22.   RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK
  23.                                                                   | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
  24.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  25.   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  26.   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  27.   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  28.   if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)
  29.   {
  30.     /* Initialization Error */
  31.     while(1);
  32.   }
复制代码
开启了PLL,系统时钟80Mhz,这样开启USART轻松上115200,当然换成HSI也可以,楼主都尝试过,照葫芦画瓢就可以了。

评分

参与人数 1 ST金币 +10 收起 理由
沐紫 + 10

查看全部评分

收藏 评论13 发布时间:2015-10-29 16:43

举报

13个回答
Small利 回答时间:2015-10-29 16:53:53
顶一下
风子 回答时间:2015-10-29 17:06:24
不用焊晶振一样用HSE
w小菜才 回答时间:2015-10-29 17:15:26
看看
suoma 回答时间:2015-10-29 19:03:36
                    谢谢分享
disheng4688 回答时间:2015-10-29 20:11:10
谢谢分享
JackieLaura 回答时间:2015-10-29 21:04:13
谢谢分享
stmcu.org.png
神棍狗大侠 回答时间:2015-10-29 23:25:33
在MX设置一下就好
peter001 回答时间:2015-10-30 00:11:36
谢谢分享
aoxiangwode2008 回答时间:2015-10-30 08:20:02
外部的比较准一些。
小小笼包 回答时间:2015-10-30 09:05:35
埃斯提爱慕 回答时间:2015-10-30 22:10:28
提示: 作者被禁止或删除 内容自动屏蔽
星辰一方 回答时间:2015-11-2 10:47:06
L476我不知道,不过F446我试过,115200波特率串口通讯,使用了HSE,也是会出现乱码,我使用的时候连续传输了10K字节左右,试了10次左右,有三次都是中间出现两次乱码
无线传感器啊 回答时间:2015-11-2 14:52:18
谢谢分享,开搞L4

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版