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

STM32F303VC的引脚功能复用问题

[复制链接]
Apple886 提问时间:2016-9-2 14:27 /
阅读主题, 点击返回1楼
收藏 1 评论16 发布时间:2016-9-2 14:27
16个回答
开心/xin男孩 回答时间:2016-9-6 08:43:52
签到签到
乞丐工程师 回答时间:2016-9-6 09:05:11
顶顶顶!!!
chifen 回答时间:2016-9-6 09:18:37
  1. void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp)
  2. {

  3.   GPIO_InitTypeDef GPIO_InitStruct;
  4.   if(hcomp->Instance==COMP3)
  5.   {
  6.   /* USER CODE BEGIN COMP3_MspInit 0 */

  7.   /* USER CODE END COMP3_MspInit 0 */
  8.   
  9.     /**COMP3 GPIO Configuration   
  10.     PA4     ------> COMP3_INM
  11.     PB14     ------> COMP3_INP
  12.     PC8     ------> COMP3_OUT
  13.     */
  14.     GPIO_InitStruct.Pin = GPIO_PIN_4;
  15.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  16.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  17.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  18.     GPIO_InitStruct.Pin = GPIO_PIN_14;
  19.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  20.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  21.     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  22.     GPIO_InitStruct.Pin = GPIO_PIN_8;
  23.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  24.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  25.     GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
  26.     GPIO_InitStruct.Alternate = GPIO_AF7_COMP3;
  27.     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

  28.   /* USER CODE BEGIN COMP3_MspInit 1 */

  29.   /* USER CODE END COMP3_MspInit 1 */
  30.   }
  31. }
复制代码
  1. void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp)
  2. {

  3.   if(hcomp->Instance==COMP3)
  4.   {
  5.   /* USER CODE BEGIN COMP3_MspDeInit 0 */

  6.   /* USER CODE END COMP3_MspDeInit 0 */
  7.   
  8.     /**COMP3 GPIO Configuration   
  9.     PA4     ------> COMP3_INM
  10.     PB14     ------> COMP3_INP
  11.     PC8     ------> COMP3_OUT
  12.     */
  13.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4);

  14.     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_14);

  15.     HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8);

  16.   }
  17.   /* USER CODE BEGIN COMP3_MspDeInit 1 */

  18.   /* USER CODE END COMP3_MspDeInit 1 */
  19. }
复制代码
STM32CubeMX生成的, 比较器需要有两个输入进行对比, 上面是PC8为输出,
以下更改为PA8,希望对你有帮助
  1. void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp)
  2. {

  3.   GPIO_InitTypeDef GPIO_InitStruct;
  4.   if(hcomp->Instance==COMP3)
  5.   {
  6.   /* USER CODE BEGIN COMP3_MspInit 0 */

  7.   /* USER CODE END COMP3_MspInit 0 */
  8.   
  9.     /**COMP3 GPIO Configuration   
  10.     PA4     ------> COMP3_INM
  11.     PB14     ------> COMP3_INP
  12.     PA8     ------> COMP3_OUT
  13.     */
  14.     GPIO_InitStruct.Pin = GPIO_PIN_4;
  15.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  16.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  17.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  18.     GPIO_InitStruct.Pin = GPIO_PIN_14;
  19.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  20.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  21.     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  22.     GPIO_InitStruct.Pin = GPIO_PIN_8;
  23.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  24.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  25.     GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
  26.     GPIO_InitStruct.Alternate = GPIO_AF8_COMP3;
  27.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  28.   /* USER CODE BEGIN COMP3_MspInit 1 */

  29.   /* USER CODE END COMP3_MspInit 1 */
  30.   }
  31. }

  32. void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp)
  33. {

  34.   if(hcomp->Instance==COMP3)
  35.   {
  36.   /* USER CODE BEGIN COMP3_MspDeInit 0 */

  37.   /* USER CODE END COMP3_MspDeInit 0 */
  38.   
  39.     /**COMP3 GPIO Configuration   
  40.     PA4     ------> COMP3_INM
  41.     PB14     ------> COMP3_INP
  42.     PA8     ------> COMP3_OUT
  43.     */
  44.     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_8);

  45.     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_14);

  46.   }
  47.   /* USER CODE BEGIN COMP3_MspDeInit 1 */

  48.   /* USER CODE END COMP3_MspDeInit 1 */
  49. }
复制代码


johnson_gong 回答时间:2016-9-6 09:21:26
1.配置成复用模式
2.配置相应的输入输出模式
Dylan疾风闪电 回答时间:2016-9-6 12:11:42
本帖最后由 Dylan疾风闪电 于 2016-9-6 12:19 编辑

5楼说的蛮好的。
第一步,看数据手册的映射功能:找到PA8复用功能的COMP3_OUT的配置值  是AF8。
第二步,就是调用库函数来实现:以库函数为例
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_Init(GPIOA , &GPIO_InitStructure);

GPIO_PinAFConfig(GPIOA, GPIO_PinSource8,GPIO_AF_8);
新建位图图像.jpg



zbber 回答时间:2016-9-6 14:11:05
收藏了,感谢楼主的无私分享
anywill 回答时间:2016-10-23 17:52:22
路过,支持
12

所属标签

相似问题

官网相关资源

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