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

Snippet - 熟悉的感觉一点点

[复制链接]
arm8686 发布时间:2015-2-8 22:20
本帖最后由 arm8686 于 2015-2-8 22:22 编辑

        眼前不是我熟悉的双眼
        陌生的感觉一点点
        但是他的故事我怀念
        回头有一群朴素的少年
        轻轻松松地走远
        不知道哪一天再相见
            —— Beyond 《大地》(国语版)

(以下算是华丽的分割线)
寄存器直接访问 —— 寄存器直接访问 —— 寄存器直接访问 —— 寄存器直接访问
(以上算是华丽的分割线)

这就是标题中所言的【熟悉的感觉】!

STM32SnippetsF0Example Code
    snippets covering STM32 F0 serie

Key Features:

    1.  Complete free C source code firmware examples for STM32F0xx microcontrollers

    2.  Basic examples using register direct-accesses as defined in CMSIS Cortex-M0 Device Peripheral Access Layer Header File (sm32f0xx.h)

    3. Self-documented code
    4. Compliant with MISRA
    5. Compliant with EWARM and MDK-ARM


粘贴一段代码,示例一下:
  1. /**
  2.   * @brief  This function configures USART1.
  3.   * @param  None
  4.   * @retval None
  5.   */
  6. __INLINE void Configure_USART1(void)
  7. {
  8.   /* Enable the peripheral clock USART1 */
  9.   RCC->APB2ENR |= RCC_APB2ENR_USART1EN;

  10.   /* Configure USART1 */
  11.   /* (1) oversampling by 16, 9600 baud */
  12.   /* (2) 8 data bit, 1 start bit, 1 stop bit, no parity */
  13.   USART1->BRR = 480000 / 96; /* (1) */
  14.   USART1->CR1 = USART_CR1_TE | USART_CR1_UE; /* (2) */
  15.   
  16.   /* polling idle frame Transmission */
  17.   while((USART1->ISR & USART_ISR_TC) != USART_ISR_TC)
  18.   {
  19.     /* add time out here for a robust application */
  20.   }
  21.   USART1->ICR |= USART_ICR_TCCF;/* clear TC flag */
  22.   USART1->CR1 |= USART_CR1_TCIE;/* enable TC interrupt */
  23.   
  24.   /* Configure IT */
  25.   /* (3) Set priority for USART1_IRQn */
  26.   /* (4) Enable USART1_IRQn */
  27.   NVIC_SetPriority(USART1_IRQn, 0); /* (3) */
  28.   NVIC_EnableIRQ(USART1_IRQn); /* (4) */
  29. }
复制代码
这一行有点意思:
  1.   USART1->BRR = 480000 / 96; /* (1) */
复制代码
这就是 48000000/9600 去掉了两个 0。比手算出来再赋值,好理解一点。

另外,在 system_stm32f0xx.c 文件中有 SystemCoreClock 作为全局变量,不过还没有通过某个 .h 文件 extern 出来。



收藏 评论5 发布时间:2015-2-8 22:20

举报

5个回答
damiaa 回答时间:2015-2-9 08:51:29
寄存器直接访问
arm8686 回答时间:2015-2-9 11:36:05
一些对比:

STM32 Snippet

STM32 Snippet


STM32 Snippet

STM32 Snippet

arm8686 回答时间:2015-2-10 10:51:14
看来我还真有当校对的潜质

STM32F072RBT6 RM0091

STM32F072RBT6 RM0091
jbs314 回答时间:2015-2-10 10:56:31
简洁,运行速度快
netlhx 回答时间:2015-2-11 13:52:57
arm8686 发表于 2015-2-10 10:51
看来我还真有当校对的潜质

亮了

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版