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

关于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条回答 默认 最新

  • Vice Versa XL 2022-01-17 09:36
    关注

    while 导致 电平一直反转,因此会输出PWM波,此时用电压表测得的电压是PWM等效电压,如果用示波器看的话就是PWM波
    可以考虑将函数不放在while中

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 添加组件无法加载页面,某块加载卡住
  • ¥15 网络科学导论,网络控制
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错