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

查看: 6382|回复: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版