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

请教STM32F031的PA13-SWDIO读电平一直为低问题

[复制链接]
deyagu 提问时间:2017-11-9 09:51 /
产品上引脚必须复用PA13和PA14。把PA13和PA14初始化成GPIO输入时,读外部输入的电平(频率低于1HZ方波),PA13和PA14读出来的电平一直为0,不知道问题出在哪里?
之前用过STM32F1系列,用下载口做GPIO时要先关SWJ,STM32F0没有这个寄存器,用STM32CubeMX生成的代码也没有什么特殊的地方。

请教大家:


初始化代码如下:
GPIO_InitStruct.Pin       = LPMODE_PIN;
GPIO_InitStruct.Mode   =  GPIO_MODE_INPUT;//GPIO_MODE_IT_RISING_FALLING;
GPIO_InitStruct.Pull      = GPIO_NOPULL;
HAL_GPIO_Init(LPMODE_PORT, &GPIO_InitStruct);


读电平:
static u8 CheckPinState(GPIO_TypeDef *SrcPort, u8 SrcPin)
{
    u8 ucCnt = 3;
    u8 ucStatus = 1;
    u8 ucHighLevelCnt = 0, ucLowLevelCnt = 0;

    // remove jitter
    while (ucCnt--)
    {
        (HAL_GPIO_ReadPin(SrcPort, SrcPin)) ? (ucHighLevelCnt++) : (ucLowLevelCnt++);
    }

    (ucHighLevelCnt > ucLowLevelCnt) ? (ucStatus = 1) : (ucStatus = 0);
    return ucStatus;
}




收藏 评论2 发布时间:2017-11-9 09:51

举报

2个回答
zero99 回答时间:2017-11-20 16:55:25
楼主有问题请发求助帖哦~
七哥 回答时间:2018-3-8 01:11:51
static u8 CheckPinState(GPIO_TypeDef *SrcPort, u8 SrcPin)

这一条中,SrcPin的类型不对,不能是u8,应该是u16类型。
见stm32f0xx_hal_gpio.c和stm32f0xx_hal_gpio.h
傲游截图20180308011049.jpg

傲游截图20180308011110.jpg

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版