[技术问答] 手册找不到的寄存器配置怎么办

[复制链接]
1440|5
 楼主| 玛尼玛尼哄 发表于 2018-6-27 11:30 | 显示全部楼层 |阅读模式
刚才看到有朋友问M472的ADC参考电压配置问题。发现手册是真没有提到怎么配置,但是提到了都有哪些选择。
我下载了对应的BSP开发包,找到里面的STD标准外设例程序,发现里面有用到这个参考的配置寄存器,并且有注释,于是顺藤摸瓜在sys.h头文件找到了对应的参数宏,于是知道了都有哪些选项可以使用。这就解决了手册数据不完整的问题,毕竟手册内容有限,不可能每个寄存器怎么用都写的非常详细,知道有这个功能就行了,找对应头文件,肯定有的。
 楼主| 玛尼玛尼哄 发表于 2018-6-27 11:32 | 显示全部楼层
例子里这么写的
  1.     /* Vref connect to AVDD */
  2.     SYS->VREFCTL |= SYS_VREFCTL_VREF_AVDD;


对应的头文件部分内容如下
  1. /*  VREFCTL constant definitions. (Write-Protection Register)                                               */
  2. /*---------------------------------------------------------------------------------------------------------*/
  3. #define SYS_VREFCTL_VREF_2_65V         (0x03UL<<SYS_VREFCTL_VREFCTL_Pos)    /*!<  VOUT= 2.56V  \hideinitializer */
  4. #define SYS_VREFCTL_VREF_2_048V        (0x07UL<<SYS_VREFCTL_VREFCTL_Pos)    /*!< VOUT= 2.048V  \hideinitializer */
  5. #define SYS_VREFCTL_VREF_3_072V        (0x0BUL<<SYS_VREFCTL_VREFCTL_Pos)    /*!< VOUT= 3.072V  \hideinitializer */
  6. #define SYS_VREFCTL_VREF_4_096V        (0x0FUL<<SYS_VREFCTL_VREFCTL_Pos)    /*!< VOUT= 4.096V  \hideinitializer */
  7. #define SYS_VREFCTL_VREF_AVDD          (0x10UL<<SYS_VREFCTL_VREFCTL_Pos)   /*!< VOUT= AVDD  \hideinitializer */
  8. #define SYS_VREFCTL_ADCMODESEL_EADC    (0x1UL<<SYS_VREFCTL_ADCMODESEL_Pos) /*!< EADC mode  \hideinitializer */
  9. #define SYS_VREFCTL_ADCMODESEL_ADC     (0x0UL<<SYS_VREFCTL_ADCMODESEL_Pos) /*!< ADC mode  \hideinitializer */
  10. #define SYS_VREFCTL_PWMSYNCMODE_EN     (0x1UL<<SYS_VREFCTL_PWMSYNCMODE_Pos)/*!<PWM SYNC MODE ENABLED, PWM engine clock is same as HCLK  \hideinitializer */
xiaoqizi 发表于 2018-6-28 11:30 | 显示全部楼层
从代码里能找到源头
Puremr 发表于 2018-6-28 17:07 | 显示全部楼层
错了,我认为数据手册是最详细的。
zhuotuzi 发表于 2018-6-28 20:22 | 显示全部楼层
楼主高明,毕竟头文件要把所有寄存器都有的,而文档不一定表露全面。
hengshu 发表于 2018-6-28 22:37 | 显示全部楼层
厉害我的国,我也是找了好久才找到的,新唐手册和例程写的太随意了,里面还有错误
捕获.PNG
您需要登录后才可以回帖 登录 | 注册

本版积分规则

196

主题

3261

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部