[STM8] stm8l101单片机PB0,PD0口电平没有Toggle....

[复制链接]
 楼主| AVS09873 发表于 2014-12-31 13:41 | 显示全部楼层 |阅读模式
如题,本人刚入手stm8l系列单片机,目前是在ST官网上下载了固件库,想试一下GPIO的操作。。。
按照固件库里面的程序例程,自己建了一个Project,编译通过后,看不到PB0,PD0口的电平Toggle。。。
main程序如下(基本上和ST给的程序一样):
#include "stm8l10x.h"
#include "stm8l10x_gpio.h"

void Delay(__IO uint16_t nCount);

void main(void)
{
  // GPIO_DeInit(GPIOB);
   //GPIO_DeInit(GPIOD);
   GPIO_Init(GPIOB, GPIO_Pin_0, GPIO_Mode_Out_PP_Low_Fast);
   GPIO_Init(GPIOD, GPIO_Pin_0, GPIO_Mode_Out_PP_Low_Fast);
  
  while(1)
{
   GPIO_ToggleBits(GPIOB, GPIO_Pin_0);
   GPIO_ToggleBits(GPIOD, GPIO_Pin_0);
   Delay(0xFFFF);
}
}


void Delay(__IO uint16_t nCount)
{
  /* Decrement nCount value */
  while (nCount != 0)
  {
    nCount--;
  }
}

#ifdef  USE_FULL_ASSERT

/**
  * @brief  Reports the name of the source file and the source line number
  *   where the assert_param error has occurred.
  * @param  file: pointer to the source file name
  * @param  line: assert_param error line source number
  * @retval None
  */
void assert_failed(uint8_t* file, uint32_t line)
{
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* Infinite loop */
  while (1)
  {}
}
#endif

硬件电路图如附件。
还请各位大牛不吝解惑,在线等,谢谢!
原理图.JPG
 楼主| AVS09873 发表于 2014-12-31 13:50 | 显示全部楼层
自己先顶个。
我刚刚仿真了一下。打开IAR 中的Register管理器,在运行到GPIO_ToggleBits(GPIOB, GPIO_Pin_0);时,
PB0,PD0口是有在变化的,在0,1之间变化。。。。如附件图。
Debugger.JPG
 楼主| AVS09873 发表于 2014-12-31 13:51 | 显示全部楼层
难道是硬件上的问题?
sunmeat 发表于 2014-12-31 14:10 | 显示全部楼层
程序目测没问题,你工程的目标芯片选对了没,硬件有问题没
 楼主| AVS09873 发表于 2014-12-31 14:20 | 显示全部楼层
sunmeat 发表于 2014-12-31 14:10
程序目测没问题,你工程的目标芯片选对了没,硬件有问题没

OK,原来是我的芯片没选对。。。。:(
晕死,看来以后要多加细心。。。。
谢谢!
设置.JPG
 楼主| AVS09873 发表于 2014-12-31 14:33 | 显示全部楼层
sunmeat 发表于 2014-12-31 14:10
程序目测没问题,你工程的目标芯片选对了没,硬件有问题没

再请教一下,我的这个板子上的外部晶振为什么用示波器量了没有信号?是不是需要软件启动?
 楼主| AVS09873 发表于 2014-12-31 14:34 | 显示全部楼层
AVS09873 发表于 2014-12-31 14:33
再请教一下,我的这个板子上的外部晶振为什么用示波器量了没有信号?是不是需要软件启动? ...

现在两个LED都是在闪了,但是不知道为什么晶振没起振,感觉很奇怪
小浣熊 发表于 2014-12-31 15:14 | 显示全部楼层
晶振没起振的原因,这个不是很清楚啊。
mmuuss586 发表于 2014-12-31 23:56 | 显示全部楼层

解决了就好;
指令本身肯定没问题的;
周董 发表于 2015-1-2 12:39 | 显示全部楼层
Delay(0xFFFF);这个是多长时间啊??
 楼主| AVS09873 发表于 2015-1-4 19:35 | 显示全部楼层
周董 发表于 2015-1-2 12:39
Delay(0xFFFF);这个是多长时间啊??

实际测试下来,LED差不多以1s的周期闪烁
周董 发表于 2015-1-6 22:33 | 显示全部楼层
AVS09873 发表于 2015-1-4 19:35
实际测试下来,LED差不多以1s的周期闪烁

哦哦 这个是比较正常的情况吧
 楼主| AVS09873 发表于 2015-1-7 12:14 | 显示全部楼层
周董 发表于 2015-1-6 22:33
哦哦 这个是比较正常的情况吧

Delay(0xFFFF),延时应该就是65535自减的时间,但是不知道这差不多1s的时间是怎么算出来的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部