打印

我发现GD32F103C8T6一个bug

[复制链接]
5088|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tdnx611g|  楼主 | 2015-12-16 16:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
采用 HSI 关闭HSE ,
我手里两块板子 ,只是主芯片不同,一个stm一个gd,
同一个程序,同一个断点
gd的  pd1 不能输出低电平

希望可以奖励一个开发板
沙发
tdnx611g|  楼主 | 2015-12-16 16:48 | 只看该作者

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void RCC_Configuration(void)
{  
       //~~~~~~~~~~~~~~添加的
  //RCC_DeInit();
  RCC_HSEConfig(RCC_HSE_OFF);

  RCC_HSICmd(ENABLE);

  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);


   FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
  
   FLASH_SetLatency(FLASH_Latency_2);
  
   RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB时钟为系统时钟SYSCLK
  
   RCC_PCLK2Config(RCC_HCLK_Div1);  //APB1时钟为HCLK/2,其中HCLK为AHB时钟
  
   RCC_PCLK1Config(RCC_HCLK_Div2);  //APB2时钟为HCLK
  
   //设置 PLL 时钟源及倍频系数
  
   RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_2);
  
   //使能或者失能 PLL,这个参数可以取:ENABLE或者DISABLE
  
   RCC_PLLCmd(ENABLE);//如果PLL被用于系统时钟,那么它不能被失能
  
   //等待指定的 RCC 标志位设置成功 等待PLL初始化成功
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
   //设置系统时钟(SYSCLK) 设置PLL为系统时钟源  
   RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
   //等待PLL成功用作于系统时钟的时钟源
     // 0x00:HSI 作为系统时钟  // 0x04:HSE作为系统时钟   // 0x08:PLL作为系统时钟
      while(RCC_GetSYSCLKSource() != 0x08);
}
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);//关闭JTAG 不管swd
        GPIO_PinRemapConfig(GPIO_Remap_PD01, ENABLE);//使能pd01 引脚



//超声波测距初始化对应pin配置为下拉,因为超声波高电平有效
void  ultraSoundInit(u16 arr,u16 psc)
{
                TIM_ICInitTypeDef  TIM_ICInitStructure;
               
                TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure ;

                GPIO_InitTypeDef GPIO_InitStructure;

                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO,ENABLE);//开启PD时钟

                       
                //SystemInit(void)
               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//stm32官方输入扑捉用悬浮模式,正点是IPD
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_Init(GPIOD, &GPIO_InitStructure);
                GPIO_ResetBits(GPIOD, GPIO_Pin_1);//上电关闭超声波电源
               
在gd的芯片上,失效

使用特权

评论回复
评论
JWKF 2021-8-11 13:43 回复TA
你说用的函数名都不对 
板凳
wangtengchu| | 2015-12-17 00:03 | 只看该作者
首先,你的这个说法是错误的,压根不存在bug证明如下:
首先:理论验证,楼主是错误的。


首先在stm32的C8上可以用,这个是正确的,为什么呢?看图[img]file:///C:\Users\OF_Frank\AppData\Roaming\Tencent\Users\493179413\QQ\WinTemp\RichOle\GU@E@FA4G{YT@_[)%X2JZFL.png[/img][img=0,1]file:///C:\Users\OF_Frank\AppData\Roaming\Tencent\Users\493179413\QQ\WinTemp\RichOle\GU@E@FA4G{YT@_[)%X2JZFL.png[/img][img=0,1]file:///C:\Users\OF_Frank\AppData\Roaming\Tencent\Users\493179413\QQ\WinTemp\RichOle\GU@E@FA4G{YT@_[)%X2JZFL.png[/img]


stm手册上说明这个功能是可用的



我们再来看看GD的手册:[img]file:///C:\Users\OF_Frank\AppData\Roaming\Tencent\Users\493179413\QQ\WinTemp\RichOle\@[Y[%EZG$N~{M4U(TOU_WWQ.png[/img] 留意这个(4),再看下图file:///C:\Users\OF_Frank\AppData\Roaming\Tencent\Users\493179413\QQ\WinTemp\RichOle\TO1]VVVSUE0F5S~7ZXC0@`S.png

说明GD的,你要用到PD0和PD1,必须是在GD32F103xF以上的容量型号才行

上面是理论的验证,下面我们来看看实验代码验证
首先我跑的是内部HSI,[img=0,1]file:///C:\Users\OF_Frank\AppData\Roaming\Tencent\Users\493179413\QQ\WinTemp\RichOle\_)9U2X[33POG_4O$H]VEC2F.png[/img] 然后我初始化了这两个管脚,file:///C:\Users\OF_Frank\AppData\Roaming\Tencent\Users\493179413\QQ\WinTemp\RichOle\4VR99N1EPI$K]WZX6OX5P@V.png
最终在while里面做了闪灯,证明我可以随意控制高低电平



[img]file:///C:\Users\OF_Frank\AppData\Roaming\Tencent\Users\493179413\QQ\WinTemp\RichOle\GU@E@FA4G{YT@_[)%X2JZFL.png[/img][img=0,1]file:///C:\Users\OF_Frank\AppData\Roaming\Tencent\Users\493179413\QQ\WinTemp\RichOle\GU@E@FA4G{YT@_[)%X2JZFL.png[/img]

使用特权

评论回复
地板
tdnx611g|  楼主 | 2015-12-17 08:53 | 只看该作者
感谢楼上

使用特权

评论回复
5
denvice| | 2015-12-17 17:50 | 只看该作者
楼主你是不是初始化顺序得调整一下,先使能AFiO时钟,再配置remap

使用特权

评论回复
6
firstblood| | 2015-12-19 17:40 | 只看该作者
这是在配置输出寄存器的方面除了问题的?

使用特权

评论回复
7
smilingangel| | 2015-12-19 22:28 | 只看该作者
看来这个管脚有特定的功能的才可以的。当然了,不同型号的单片机的管教的定义是有区别的。

使用特权

评论回复
8
tongbu2015| | 2015-12-20 19:30 | 只看该作者
这个看来还是跟单片机相关系的。

使用特权

评论回复
9
mutable| | 2021-8-12 14:10 | 只看该作者
wangtengchu 发表于 2015-12-17 00:03
首先,你的这个说法是错误的,压根不存在bug证明如下:
首先:理论验证,楼主是错误的。

这个回复帅气至极!!
赞了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

1

粉丝