完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我可以设法从HSI> HSE更改时钟,反之亦然。但我无法将LSI作为我的主时钟。有人可以帮忙吗?
我使用STM8S Discovery板和Cosmic C作为我的编译器。 我的代码如下: / * MAIN.C文件 * *版权所有(c)2002-2005 STMicroelectronics * / &amp; sharpinclude''stm8s.h'' u16 c = 50000; 我爱你 主要() { ErrorStatus状态; CLK_DeInit(); CLK_HSICmd(ENABLE); while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY)== 0); CLK_LSICmd(ENABLE); while(CLK_GetFlagStatus(CLK_FLAG_LSIRDY)== 0); CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8); CLK_ClockSwitchCmd(ENABLE); CLK_CCOConfig(CLK_OUTPUT_MASTER); CLK_CCOCmd(ENABLE); GPIO_DeInit(GPIOD); GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_FAST); 而(1){ // CLK_PeripheralClockConfig(CLK_PERIPHERAL_tiMER2,ENABLE); // TIM2_DeInit(); // TIM2_TimeBaseInit(TIM2_PRESCALER_2048,300); // TIM2_Cmd(ENABLE); 对于(I = 0; I&LT; 10;我++){ // if(TIM2_GetCounter()&gt; 150){ // GPIO_WriteHigh(GPIOD,GPIO_PIN_0); //} //其他{ // GPIO_WriteLow(GPIOD,GPIO_PIN_0); //} 而(c> 1){ C - ; } C = 50000; GPIO_WriteReverse(GPIOD,GPIO_PIN_0); } 状态= CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE); 对于(I = 0; I&LT; 10;我++){ // if(TIM2_GetCounter()&gt; 150){ // GPIO_WriteHigh(GPIOD,GPIO_PIN_0); //} //其他{ // GPIO_WriteLow(GPIOD,GPIO_PIN_0); //} 而(c> 1){ C - ; } C = 50000; GPIO_WriteReverse(GPIOD,GPIO_PIN_0); } 状态= CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_LSI,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE); } } &amp; sharpifdef USE_FULL_ASSERT / ** * @brief报告源文件的名称和源行号 *发生assert_param错误的地方。 * @param文件:指向源文件名的指针 * @param line:assert_param错误行源编号 * @retval没有 * / void assert_failed(uint8_t * file,uint32_t行) { / *用户可以添加自己的实现来报告文件名和行号, 例如:printf(''参数值错误:%d r n n'',文件,行上的文件%s)* / /* 无限循环 */ 而(1) { } } &安培; sharpendif #LSI-时钟源 以上来自于谷歌翻译 以下为原文 Hi, I can manage to change clock from HSI>HSE and vice versa. But I am not able to bring LSI as my master clock. Can anyone help please? I am using STM8S Discovery board and Cosmic C as my compiler. My code is as follows: /* MAIN.C file * * Copyright (c) 2002-2005 STMicroelectronics */ &sharpinclude ''stm8s.h'' u16 c=50000; u8 i; main() { ErrorStatus status; CLK_DeInit(); CLK_HSICmd(ENABLE); while (CLK_GetFlagStatus(CLK_FLAG_HSIRDY)==0); CLK_LSICmd(ENABLE); while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY)==0); CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8); CLK_ClockSwitchCmd(ENABLE); CLK_CCOConfig(CLK_OUTPUT_MASTER); CLK_CCOCmd(ENABLE); GPIO_DeInit (GPIOD); GPIO_Init (GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_FAST); while (1){ // CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2,ENABLE); // TIM2_DeInit(); // TIM2_TimeBaseInit(TIM2_PRESCALER_2048, 300); // TIM2_Cmd(ENABLE); for(i=0;i<10;i++){ // if (TIM2_GetCounter()>150){ // GPIO_WriteHigh(GPIOD,GPIO_PIN_0); // } // else { // GPIO_WriteLow(GPIOD,GPIO_PIN_0); // } while (c>1){ c--; } c=50000; GPIO_WriteReverse(GPIOD,GPIO_PIN_0); } status=CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE); for(i=0;i<10;i++){ // if (TIM2_GetCounter()>150){ // GPIO_WriteHigh(GPIOD,GPIO_PIN_0); // } // else { // GPIO_WriteLow(GPIOD,GPIO_PIN_0); // } while (c>1){ c--; } c=50000; GPIO_WriteReverse(GPIOD,GPIO_PIN_0); } status=CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_LSI,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE); } } &sharpifdef 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 %drn'', file, line) */ /* Infinite loop */ while (1) { } } &sharpendif #lsi-clock-source |
|
相关推荐
1个回答
|
|
确保选项字节设置为启用LSI。有关选项字节的说明,请参见数据表。
以上来自于谷歌翻译 以下为原文 Make sure the option bytes are set to enable the LSI. See datasheet for description of option bytes. |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2747 浏览 1 评论
3244 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1813 浏览 1 评论
3655 浏览 6 评论
6045 浏览 21 评论
1342浏览 4评论
204浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
359浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
451浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
277浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 00:00 , Processed in 1.254646 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号