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
[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的晶振。
先试一下我的
- void SystemClock_Init(void)
- {
- CLK_HSICmd(ENABLE);//启用内部高速时钟
- CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIdiv1);//配置HSI时钟分频系数为1,16MHZ供给CPU
- /* CLK_HSECmd(ENABLE); //外部时钟使能
- CLK_HSICmd(ENABLE);//开启内部高速时钟 16MHz
- CLK_SYSCLKConfig(CLK_PRESCALER_CPUdiv1);//时钟分频设置系统时钟16M不分频
- CLK_ClockSwitchCmd(ENABLE);
- CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE); */
- }
内部时钟的话是可以正常收发,就是外部时钟不行
你的单片机型号是多少?晶振焊接的是多少MHz的?
谢谢你哈,问题我找到了,是编译的时候时钟设成24Mhz了,而我用的是16Mhz的。
小编你好 我现在也遇到这种问题 请问怎么解决的?表示没有找到楼下说的宏定义
在这个文件里,需要修改这个宏定义首先是你的单片机跑外部晶振默认的是24MHz才有必要去改,例如207系列的就是。如果不改,在串口通信中计算的波特率就不正确了
在stm8sXXX.h文件里面
路过, 学习