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

stm32 systick

[复制链接]
lm2018yy 提问时间:2018-6-13 15:14 /
本帖最后由 lm2018yy 于 2018-6-14 11:12 编辑

使用stm32f103zet6芯片
void delay_us(uint32_t n)  
{     
        SysTick->LOAD=72*n;      //72M,
        SysTick->CTRL=0x00000005;//HCLK(72M)
        while(!(SysTick->CTRL&0x00010000)); //0   
        SysTick->CTRL=0x00000004;
}
main函数中
             while(1)
                {
                        GPIO_SetBits(GPIOF, GPIO_Pin_All);
                        delay_us(2000);
                        

                        GPIO_ResetBits(GPIOF, GPIO_Pin_All);
                        delay_us(1000);
                }

管脚测试产生如0032波形:



求大神为啥是这样?不应该是“1”长“0”短吗?



RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOF |
                         RCC_APB2Periph_GPIOC, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOF, &GPIO_InitStructure);

  
  while(1)
  {
   GPIO_SetBits(GPIOF, GPIO_Pin_All);
   //GPIO_Write(GPIOF, 0xffff);
   //delay_us(20000);
   n=20000;while(n){n--;}
   GPIO_Write(GPIOF, 0x0);//GPIO_ResetBits(GPIOF, GPIO_Pin_All);
   //delay_us(10000);
   n=10000;while(n){n--;}
  }

GPIO配置没变,换为此段程序,正常。
图如004:

“1”短“0”长

“1”短“0”长

正常

正常
收藏 评论13 发布时间:2018-6-13 15:14

举报

13个回答
回答时间:2018-6-13 15:36:35
楼主是直连CPU引脚直接测试的吗?最好有结合电路图和实际的使用进行分析。

评分

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

查看全部评分

lm2018yy 回答时间:2018-6-13 15:41:14
安 发表于 2018-6-13 15:36
楼主是直连CPU引脚直接测试的吗?最好有结合电路图和实际的使用进行分析。 ...

管脚直接测试,不知啥问题导致的
回答时间:2018-6-13 15:46:39
单独测试一下,拉高,或者拉低,检测到的波形是什么样的。
电子星辰 回答时间:2018-6-13 16:07:36
1.GPIO_SetBits函数里是输出高电平?
2.所测引脚接没接上拉电阻?

评分

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

查看全部评分

baitiandesinian 回答时间:2018-6-13 16:08:40
谢谢分享

评分

参与人数 1ST金币 -2 收起 理由
zero99 -2 求助帖禁止灌水,警告一次

查看全部评分

lm2018yy 回答时间:2018-6-13 16:38:08
安 发表于 2018-6-13 15:46
单独测试一下,拉高,或者拉低,检测到的波形是什么样的。

单步调试,管脚输出正常
wenyangzeng 回答时间:2018-6-13 17:20:04
本帖最后由 wenyangzeng 于 2018-6-13 20:01 编辑

特地找快F1板子试一下,完全正常,看楼主的波形图,那个高电平的幅度是否达到3V?貌似GPIOF未配置正确:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOF, &GPIO_InitStructure);



无标题.png



评分

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

查看全部评分

andeyqi 回答时间:2018-6-14 07:05:32
楼主的电路是否有反向电路,测量的是CPU的引脚吗,是不是测量点选择的有问题,感觉理论上应该没问题,如果测量的位置没问题,建议检查下电路。

评分

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

查看全部评分

wudianjun2001 回答时间:2018-6-14 08:31:37
是否有外部电路,软件管脚配置是否正确?

评分

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

查看全部评分

12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版