微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM8内部晶振切换到外部晶振后,UART1发送数据没反应!求大神解答,谢谢!

STM8内部晶振切换到外部晶振后,UART1发送数据没反应!求大神解答,谢谢!

时间:10-02 整理:3721RD 点击:
大神们帮帮忙!为什么stm8换了外部晶振,串口发送数据给单片机就没反应了?而断点调试一直在中断程序中循环。(晶振是正常的)
[img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\79312890\QQ\WinTemp\RichOle\J6GRB4[V{IYJ]4N9DIFVP`W.png[/img]
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\79312890\QQ\WinTemp\RichOle\S9PHUWYSD@YF~B1}F@MRC(G.png




恩恩,那你可能用的是20X系列的吧,程序宏定义处改掉就好了,我们以前也是20X系列上的16MHz的晶振。

先试一下我的

  1. void SystemClock_Init(void)
  2. {
  3.   CLK_HSICmd(ENABLE);//启用内部高速时钟
  4.   CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIdiv1);//配置HSI时钟分频系数为1,16MHZ供给CPU
  5.       /* CLK_HSECmd(ENABLE);                     //外部时钟使能
  6.       CLK_HSICmd(ENABLE);//开启内部高速时钟 16MHz
  7.       CLK_SYSCLKConfig(CLK_PRESCALER_CPUdiv1);//时钟分频设置系统时钟16M不分频
  8.       CLK_ClockSwitchCmd(ENABLE);
  9.       CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE); */
  10. }

复制代码


内部时钟的话是可以正常收发,就是外部时钟不行

你的单片机型号是多少?晶振焊接的是多少MHz的?

谢谢你哈,问题我找到了,是编译的时候时钟设成24Mhz了,而我用的是16Mhz的。

小编你好 我现在也遇到这种问题  请问怎么解决的?表示没有找到楼下说的宏定义

在这个文件里,需要修改这个宏定义首先是你的单片机跑外部晶振默认的是24MHz才有必要去改,例如207系列的就是。如果不改,在串口通信中计算的波特率就不正确了


在stm8sXXX.h文件里面

路过,  学习                                         

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top