• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32控制IO口状态翻转

a6b9b12790f1a2ff 2018-08-14 浏览量:10057
各位大佬,sTM32有没有类似toggle 引脚状态切换的函数可以调用啊? 要做采样和PWM的同步,所以要严格控制采样和输出PWM的速度,想用一个函数在采样中断里面控制引脚电平切换完成速度匹配,但是找了好久没有找到对应的函数。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 自己写不就行了吗?一句话的事儿。 比如想让PA8翻转,如下即可: GPIO_WriteBit(GPIOA GPIO_Pin_8 (BitAction)((1-GPIO_ReadOutputDataBit(GPIOA GPIO_Pin_8)))); 想变成函数的话: void IO_Toggle(GPIO_TypeDef* GPIOxu16 GPIO_Pin) { GPIO_WriteBit(GPIOx GPIO_Pin (BitAction)((1-GPIO_ReadOutputDataBit(GPIOx GPIO_Pin)))); } 调用的时候就是:IO_Toggle(GPIOA,GPIO_Pin_8);
    • 发布于 2018-08-14
    • 举报
    • 评论 0
    • 3
    • 0

其他答案 数量:11

  • 标准库:

    GPIO_WriteBit(LED_PORT LED_PIN[Ledx] (BitAction)(1 - GPIO_ReadOutputDataBit(LED_PORT LED_PIN[Ledx] )));

    Cube库:
    HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx uint16_t GPIO_Pin);​


    • 发布于2018-08-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 有,STM32 HAL库里面有翻转用的函数

    HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx uint16_t GPIO_Pin)​

    • 发布于2018-08-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 在HAL库中的GPIO.c中就是有的

    是HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx uint16_t GPIO_Pin)

    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用HAL里面的HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx uint16_t GPIO_Pin)
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用这个HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx uint16_t GPIO_Pin)
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库里貌似是没有的,不过可以通过位操作来实现
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库里面没有这个函数,只能通过位带操作来进行控制
    • 发布于2018-08-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 要看你用的是什么库,标准库没有这样的操作,HAL库可以用HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx uint16_t GPIO_Pin)
    • 发布于2018-08-25
    • 举报
    • 评论 0
    • 0
    • 0

  • stm32直接通过bsrr寄存器就可以实现电平的翻转了,前16位是负责置1的,后16位是负责置0的。
    • 发布于2018-08-30
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32控制IO口状态翻转