搜索
bottom↓
回复: 8

STM8单片机,使用IAR编译和串口下载的同学们要注意配置字啊

[复制链接]

出0入0汤圆

发表于 2012-10-20 23:20:49 | 显示全部楼层 |阅读模式
因为买了风驰的开发板,使用库函数例程没有使用外部晶振(HSE)的例程,所以自己调试使用板载24M晶振作为HSE的程序。
程序一直死在while(SUCCESS!=CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE));处, 搞不明白到底是怎么回事。最后在网上看到有人提出OptionByte的事,说实话也怪自己粗心。技术说明书中有两处提到:
随后使用FLASH_ProgramOptionByte(),修改OPT7。杯具了,貌似OptionByte的地址错误,整个Optionbyte都乱套了,最杯具的是BootLoader被关闭了,只能借助于ST_Link打开了。所以有买了一块STM8L_Discovery开发板(自带ST_Link)。等待两天快递后,终于打开了BootLoader,和flash 1 waitstate。程序终于调试成功了。所以给大家提醒一下,千万别忽视了Optionbyte。
1、使用IAR编译的时候,没有STVP一样提供OptionByte的选项,所以如果使用大于16MHz的HSE,一定要注意Flash要等待一个时钟周期。
2、也是教训,像学STM8一定别舍不得买st-link,否则会和我一样难受。~~~~(>_<)~~~~
下面上传使用24MHz的HSE,实现接在PD0上的LED以10Hz闪烁的例程。本例程以风驰的第七个例程TIM1为基础改动而成。


顺便提供一篇STM8S—EK开发板的Optionbyte烧写教程。attach://60775.pdf此文件来自本论坛。
BTW:也可以使用软件改写EEPROM的方式改写OptionByte,正在研究,稍后上传工程文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-10-20 23:57:57 | 显示全部楼层
这位仁兄,您好!风驰开发板的例程也有配置选项字的例程,在BEEP的例程里面,用到BEEP功能的各位大神都知道必须要进行选项字的设置,对选项字设置通常有两种方法,第一种是利用程序设置,见风驰例程BEEP的例程。第二种是利用ST-LINK在下载过程中进行设置,由于考虑到大家买ST-LINK的成本较高。风驰例程也是在用程来控制的。风驰的原本的例程是利用内部的16M是晶振,后来发现很多网友说想用外部24M的晶振,因此风驰现在对程序进行改版,由于工作量大,至今还没发布,下面公布一下风驰利用外部24M晶振的例程设置。只要大家利用风驰之前BEEP功能的例程稍微修改一下就可以的。
#define Flash_wait_OptionAddr  0x480D
#define FLASHWAITSTATE  (uint8_t)(0x01)

void Set_Flash_wait_OptionByte(void)
{
  uint16_t Flash_wait_Option_status;/*记录访问flash等待状态,为了调使用的*/
  Flash_wait_Option_status=FLASH_ReadOptionByte(Flash_wait_OptionAddr);
  /*Flash_wait_Option_status是一个16位,bit15~8的高8为,是Flash_wait_OptionAddr
  地址的数据,其中bit15~9是保留的,因此是0,如果bit8是1,则表明访问flash要1一个周期的
  访问周期,bit7~0的数据是Flash_wait_OptionAddr+1地址数据,跟bit15~8的数据是相反的,
  在STM8里面,如果你使用外部时钟大于16M,小于24M的话,访问flash必须要配置Flash插入一个等待周期*/
  printf("\r\nWAITSATATE状态:0x%X\r\n",Flash_wait_Option_status);
if((Flash_wait_Option_status&0x0100)==FALSE)
   FLASH_ProgramOptionByte(Flash_wait_OptionAddr,FLASHWAITSTATE);
}
只要大家调用这个函数下载一次,之后就可以删掉这个函数了。直接可以初始化外部晶振了
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
这样就可以使用24M的外部晶振了,当使用24MHz时钟尽管插入了一个等待周期,但要记得全部外设(除Flash以外)的时钟配置都是以24MHz为基准计算;
主函数
  CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
  
  
  /*!<Set High speed internal clock  */
   Uart_Init();
   enableInterrupts() ;
   printf("\r\n硬件平台为:%s\r\n","风驰 STM8 开发板");
   UART1_SendString("Serial Communication ---STM8 Development Board of FengChi Electron ",\
             sizeof("Serial Communication ---STM8 Development Board of FengChi Electron"));
   
   Delay(0xffff);
   UART1_SendByte('\n');
   Delay(0xffff);

   printf("\r\n时钟频率:%ld\r\n",CLK_GetClockFreq());
运行之后大家可以看到打印出来的数据24000000


注:风驰正在编写新一版的教程例程,都是基于外部24M晶振。新一版的例程和教程必定让大家震惊的................................
  

出0入0汤圆

发表于 2012-10-21 00:04:54 | 显示全部楼层
1、使用IAR编译的时候,没有STVP一样提供OptionByte的选项  
LZ你说错了,IAR下载也可以进行OptionByte的选项 的设置,由于我现在手上没有ST-LINK,无法截图,在IAR中设置OptionByte的选项必须是在下载的过程中设置的,之前很多网友都问过我的,在风驰新的一版的教程会写出怎样在IAR进行OptionByte的选项字的设置,,前提是要有ST-LINK和目标板

出0入0汤圆

 楼主| 发表于 2012-10-21 00:24:19 来自手机 | 显示全部楼层
fengchi 发表于 2012-10-21 00:04  1、使用IAR编译的时候,没有STVP一样提供OptionByte的选项  LZ你说错了,IAR下载也可以进行OptionByte的选 ...

谢谢指点

出0入0汤圆

发表于 2012-10-21 00:31:28 | 显示全部楼层
同时也上传了一个工程模板给大家参考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-9-27 16:45:20 | 显示全部楼层
fengchi 发表于 2012-10-21 00:31
同时也上传了一个工程模板给大家参考

我把这个例程的hex通过stjink烧到单片机后,屏幕一直是白屏,是不是还要烧选项字呀?

出0入0汤圆

发表于 2013-9-27 16:46:09 | 显示全部楼层
fengchi 发表于 2012-10-21 00:31
同时也上传了一个工程模板给大家参考

LCD_TOUCH  这个例程

出0入0汤圆

发表于 2015-12-17 14:43:54 | 显示全部楼层
风驰哥,stlink下载要用到一个**.opc 文件,这个有没有参考模板啊,谢了[img][/img]

出0入0汤圆

发表于 2015-12-17 15:15:15 | 显示全部楼层
买个 STLINK 或者自己做个   就好了   谁还折腾串口下载啊  
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-30 23:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表