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

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