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

STM32F1的固件库最新且最终版本是多少?V3.5.0 ?V3.6.1?

[复制链接]
nyszx 提问时间:2015-1-7 22:08 /
今天调试去年的一个程序,无意间发现固件库使用的是V3.6.1版本,去官网下载发现只有3.5.0版本,没有3.6.1版本,不知道怎么回事。

收藏 评论18 发布时间:2015-1-7 22:08

举报

18个回答
wjandsq 回答时间:2015-1-12 14:02:01
STM32F103最新3.61版本固件库中,缺省设置是关闭PCE位(奇偶校验位)的输出,这里修改了库函数的头文件。

一、头文件的修改有两处
1. stm32f10x_usart.h 文件中,增加USART_Mode_PCE宏定义。
2. IS_USART_MODE(MODE)的数据范围检查,将0xFFF3修改为0xFBF3。

/** @defgroup USART_Mode
  * @{
  */
  
#define USART_Mode_Rx                        ((uint16_t)0x0004)
#define USART_Mode_Tx                        ((uint16_t)0x0008)
#define USART_Mode_PCE                       ((uint16_t)0x0400)
#define IS_USART_MODE(MODE) ((((MODE) & (uint16_t)0xFBF3) == 0x00) && ((MODE) != (uint16_t)0x00))
/**
  * @}
  */

二、串口的配置代码, 初始化后,不再重复设置CR1寄存器,代码中添加串口PCE模式即可,如下所示:

  USART_InitStructure.USART_BaudRate = linecoding.bitrate;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 库函数缺省设置是奇偶校验输出关闭
  
  /* set the parity bit*/
  switch (linecoding.paritytype)
  {
    case 0:
      USART_InitStructure.USART_Parity = USART_Parity_No;
      break;
    case 1:
      USART_InitStructure.USART_Parity = USART_Parity_Odd;  // bit : PCE 奇校验输出打开
      USART_InitStructure.USART_Mode = USART_InitStructure.USART_Mode | USART_Mode_PCE;
      break;
    case 2:
      USART_InitStructure.USART_Parity = USART_Parity_Even; // bit : PCE 偶校验输出打开
      USART_InitStructure.USART_Mode = USART_InitStructure.USART_Mode | USART_Mode_PCE;
      break;
    case 3:
      // Mark 强制为1
      USART_InitStructure.USART_Parity = USART_Parity_No;
      USART_InitStructure.USART_WordLength = USART_WordLength_9b;
      break;
    case 4:
      // Space 强制为0
      USART_InitStructure.USART_Parity = USART_Parity_No;
      USART_InitStructure.USART_WordLength = USART_WordLength_9b;
      break;
    default :
    {
      USART_Config_Default();
      return (FALSE);
    }
  }  

目前ST官方的软件团队,在STM32CubeMX的基础上正在增加对F1系列的支持,至今仍无进展消息,
但若还是按照以往推倒重来的方式,例如F4系列的HAL驱动库,完全颠覆了之前的标准外设驱动库,
是不会吸引到广大应用开发者的。虽然目前 STM32CubeMX 4.5版本生成的F1系列初始化代码,
可以拷贝到工程的C源文件中,配合标准外设驱动库使用,但未来新的F1系列HAL驱动,能否兼容
原有的标准外设驱动库,还尚未可知。




wjandsq 回答时间:2015-1-12 16:15:35
本帖最后由 wjandsq 于 2015-1-12 16:17 编辑

F4的库完整的考虑了9位数据发送,校验位的发送等,F1的库还不完善。例如F4的串口数据类型添加了校验位的定义。
#define UART_PARITY_NONE                    ((uint32_t)0x00000000)
#define UART_PARITY_EVEN                    ((uint32_t)USART_CR1_PCE)
#define UART_PARITY_ODD                     ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
#define IS_UART_PARITY(PARITY) (((PARITY) == UART_PARITY_NONE) || \
                                ((PARITY) == UART_PARITY_EVEN) || \
                                ((PARITY) == UART_PARITY_ODD))
wjandsq 回答时间:2015-1-12 16:16:48
F4的HAL驱动库使用宏代替原有的函数,效率提升很多,例如。
#define __GPIOA_CLK_ENABLE()         (RCC->AHB1ENR |= (RCC_AHB1ENR_GPIOAEN))
#define __GPIOB_CLK_ENABLE()         (RCC->AHB1ENR |= (RCC_AHB1ENR_GPIOBEN))
#define __GPIOC_CLK_ENABLE()         (RCC->AHB1ENR |= (RCC_AHB1ENR_GPIOCEN))
#define __GPIOD_CLK_ENABLE()         (RCC->AHB1ENR |= (RCC_AHB1ENR_GPIODEN))
#define __GPIOE_CLK_ENABLE()         (RCC->AHB1ENR |= (RCC_AHB1ENR_GPIOEEN))
#define __GPIOH_CLK_ENABLE()         (RCC->AHB1ENR |= (RCC_AHB1ENR_GPIOHEN))
nyszx 回答时间:2015-1-7 22:09:50
是标准外设固件库。
zhous 回答时间:2015-1-7 22:16:58
换V3.5.0的吧,可能被人修改过了
moyanming2013 回答时间:2015-1-7 22:27:45
建议以官方为主,当然看下英文官网,中文的往往慢一步。
nyszx 回答时间:2015-1-8 19:04:05
zhous 发表于 2015-1-7 22:16
换V3.5.0的吧,可能被人修改过了

这个是里面的更新记录
QQ截图20150108190240.png
zhous 回答时间:2015-1-8 19:10:53
nyszx 发表于 2015-1-8 19:04
这个是里面的更新记录

哦,那应该是官方最新的
AndyYau-268557 回答时间:2015-1-8 21:23:05
官网是标准的。
qianfan 回答时间:2015-1-9 18:11:32
貌似仅仅是更新了文件的license,貌似是将license指向了官网的一个新的网址。其他的没有改变,应该是这样的
nyszx 回答时间:2015-1-9 18:38:04
QianFan 发表于 2015-1-9 18:11
貌似仅仅是更新了文件的license,貌似是将license指向了官网的一个新的网址。其他的没有改变,应该是这样的 ...

3.6.1是这样,但3.6.0就更新比较多了
黄小狼 回答时间:2015-1-9 18:38:46
我用的是3.5的库
cxtarm 回答时间:2015-1-9 18:42:53
我见到的最新的是3.5
AndyYau-268557 回答时间:2015-1-9 19:07:16
3.5的吧,还有更高的吗?
qianfan 回答时间:2015-1-12 11:50:04
nyszx 发表于 2015-1-9 18:38
3.6.1是这样,但3.6.0就更新比较多了

官网有下载链接没?
nyszx 回答时间:2015-1-12 13:20:33
QianFan 发表于 2015-1-12 11:50
官网有下载链接没?

没有找到,只有3.5.0.所以我才问大家的
qianfan 回答时间:2015-1-12 13:33:18
nyszx 发表于 2015-1-12 13:20
没有找到,只有3.5.0.所以我才问大家的

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