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

查看: 6357|回复: 27

[STM32F072 Nucleo ] 开发板 CubeMX与FW操作GPIO的差异

  [复制链接]

68

主题

3266

回帖

82

蝴蝶豆

社区小助手

最后登录
2020-12-9
发表于 2014-12-8 22:51:10 | 显示全部楼层 |阅读模式
本帖最后由 wenyangzeng 于 2014-12-9 07:36 编辑

    昨天用STM32CubeMX 对开发板进行编译下载收到满意的结果。其中对PA5的操作是使用直接寄存器模式:GPIOA->ODR |= 0X0020; //置1
GPIOA->ODR &= ~0X0020;//置0

今天打算用F0库操作模式来进行:

GPIO_SetBits(GPIOA ,GPIO_Pin_5);
GPIO_ResetBits(GPIOA ,GPIO_Pin_5);

    不料,上面2条语句编译却报错,用STM32CubeMX生成的函数库竟然不支持F0函数库对GPIO的置位清零。有点纳闷,CubeMX同样是ST的软件包,为何自家人要各立门派,相互不兼容。其实F0和F1的函数库也有这个问题,有许多操作相同功能函数,它们的函数表达式却有少许差异,这给使用者软件移植带来诸多不变。
   阅读STM32CubeMX生成的函数库,才发现这2条函数表达式如下:
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
在此分享,望各位少走弯路。

CubeMX生成的系统时钟配置的函数如下,各位可以看出其中的差异:
void SystemClock_Config(void)
{

  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSICalibrationValue = 16;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
  HAL_RCC_OscConfig(&RCC_OscInitStruct);

  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
  __SYSCFG_CLK_ENABLE();

}



真希望ST能把STM32CubeMX升级一下,把这些差异兼容掉。





回复

使用道具 举报

24

主题

514

回帖

6

蝴蝶豆

金牌会员

最后登录
2019-4-8
发表于 2014-12-9 09:07:43 | 显示全部楼层
总得有个过程,毕竟是新东西,以后应该会有更新的,客户用着爽才是王道
回复 支持 反对

使用道具 举报

8

主题

390

回帖

2

蝴蝶豆

论坛元老

最后登录
2019-10-14
发表于 2014-12-9 11:28:49 | 显示全部楼层
使用 HAL (硬件抽象层),应该是 ST 公司今后的代码风格吧。
回复 支持 反对

使用道具 举报

68

主题

3266

回帖

82

蝴蝶豆

社区小助手

最后登录
2020-12-9
 楼主| 发表于 2014-12-9 13:47:02 | 显示全部楼层
arm8686 发表于 2014-12-9 11:28
使用 HAL (硬件抽象层),应该是 ST 公司今后的代码风格吧。

谢谢楼上的指教
回复 支持 反对

使用道具 举报

0

主题

10

回帖

0

蝴蝶豆

新手上路

最后登录
2019-3-12
发表于 2014-12-10 15:08:56 | 显示全部楼层
hal库文件少很多功能,郁闷啊.
想用cubemx,但感觉还不是时候
回复 支持 反对

使用道具 举报

93

主题

2449

回帖

4

蝴蝶豆

论坛元老

最后登录
2020-6-28
发表于 2014-12-25 20:04:45 | 显示全部楼层
看CUBEMX与MFC何其相似,但却没MFC强大,说是新生事物吧,偏偏象MFC
回复 支持 反对

使用道具 举报

68

主题

3266

回帖

82

蝴蝶豆

社区小助手

最后登录
2020-12-9
 楼主| 发表于 2014-12-26 10:34:58 | 显示全部楼层
wambob 发表于 2014-12-25 20:04
看CUBEMX与MFC何其相似,但却没MFC强大,说是新生事物吧,偏偏象MFC

   其实CUBEMX完全可以将库函数语法做成与STM32函数库语法相兼容的。这样可以让用户很快就能适应。当初STM321.0库过渡到2.0-3.0库就让用户经历了一次痛苦的过程了。
回复 支持 反对

使用道具 举报

6

主题

85

回帖

0

蝴蝶豆

高级会员

最后登录
2020-7-23
发表于 2015-1-4 11:33:27 | 显示全部楼层
差异化太大反而没人意用,就像winXp和win8一样所以中间有个Win7。win8是失败的产品,win7起码有企业愿意掏钱买单。win8只有在那些山寨触摸平面见到身映。
回复 支持 反对

使用道具 举报

14

主题

146

回帖

0

蝴蝶豆

高级会员

最后登录
1970-1-1
发表于 2015-1-5 08:43:24 | 显示全部楼层
所以现在cubemx只能用来玩玩
回复 支持 反对

使用道具 举报

19

主题

220

回帖

2

蝴蝶豆

金牌会员

最后登录
2016-1-22
发表于 2015-1-5 13:35:22 | 显示全部楼层
还没玩过这种板,帖子很及时。看来得记下来,少走弯路。谢谢楼主
回复 支持 反对

使用道具 举报

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