Star ZY 2022-01-17 09:10 采纳率: 66.7%
浏览 140
已结题

关于stm32电平翻转的问题

我想对PA1发送指令翻转电平,正常的置1和置0都是正常的,输出都是3v左右和0v。代码如下
#define POWERA1_ON GPIOA->ODR |= (1<<1)
#define POWERA1_OFF GPIOA->ODR &= ~(1<<1)
但是利用异或进行操作,引脚输出是1.06v,并且再次发送指令翻转输出是没变化的,一样是1.06v。下面两条都试过。
#define POWERA1_TUN GPIOA->ODR ^= GPIO_Pin_1 或 #define POWERA1_TUN GPIOA->ODR ^= (1<<1)
初始化代码如下:
gpio_InitTypeDef.GPIO_Mode=GPIO_Mode_Out_PP;
gpio_InitTypeDef.GPIO_Pin=GPIO_Pin_1;
gpio_InitTypeDef.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_Init(GPIOA,&gpio_InitTypeDef);
主函数:

while(1)
    {
        switch(flag1)
        {
            case 1:
                POWERA1_TUN;//PA1翻转
                break;
            case 2:
                POWERA2_TUN;//PA2翻转
                break;
        }
    }
  • 写回答

2条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 1月25日
      • 已采纳回答 1月17日
      • 创建了问题 1月17日

      悬赏问题

      • ¥15 如何抓这个函数的包wx.updateShareMenu
      • ¥15 需要数据分析!时间紧!
      • ¥15 关于免费论文查重系统的问题。
      • ¥15 朋友们,这个sim函数是出了什么问题了呢
      • ¥15 【MRT数据导入问题】MRT处理modis数据提示opening input header file怎么解决?
      • ¥15 嵌入式系统综合设计题有会的教一下嘛?
      • ¥15 yolov5转onnx验证出错
      • ¥15 proteus仿真LCD不点亮
      • ¥15 C语言红绿灯时间问题
      • ¥15 matlab仿真实现定位算法