精华内容
下载资源
问答
  • stm32F4修改时钟的方法和stm32F103修改时钟的方法不大一样,毕竟库都换了嘛,一个F1的库一个F4的库 而且F1的库默认晶振时钟就是8MHz,给我们提供了很多的方便。而且F1的库写法也很直观,输入频率,自动得出倍频过程...

    stm32F4修改时钟的方法和stm32F103修改时钟的方法不大一样,毕竟库都换了嘛,一个F1的库一个F4的库

    而且F1的库默认晶振时钟就是8MHz,大多数开发板也用的8MHz时钟,给我们提供了很多的方便。

    F1的库关于PLL的写法也很直观,输入频率,自动得出分频倍频过程。

    可一些小封装的晶振,在8MHz这个频率的价格不是很友好。所以该怎么改就怎么改。

     

     

    F4要修改时钟,首先确定外部晶振频率。

    如果是25MHz外部晶振,需要内部168MHz的运行速度。那么不用更改,因为stm32F4的标准库中默认就是25M晶振,168MHz的运行速度。

    如果是8M,就需要到stm32f4xx.h中将25000000改为8000000

    注意,这个文件上面有小锁头,表示文件属性是只读。在我的电脑中找到这个文件,右键属性将“只读”去掉。

    建议修改后再将这个属性勾上只读,防止误操作。

     

    之后修改 PLL_M 分频大小

    到system_stm32f4xx.c中,将25分频更改为8分频,至此大功告成。外部8MHz晶振,168MHz主频。

     

    需要图上 Keil 文本配色,可以到我的下载区免费下载

    https://download.csdn.net/download/mark_md/11102292

    展开全文
  • FPGAQuartusII时钟约束FPGA QuartusII 时钟约束时钟约束(Clock Specification):约束所有时钟(包括你的设计中特有的时钟)对准确的时序分析结果而言是必不可少的。Quartus II TimeQuest Timing Analyzer为各种各样的...

    FPGAQuartusII时钟约束

    FPGA QuartusII 时钟约束

    时钟约束(Clock Specification):

    约束所有时钟(包括你的设计中特有的时钟)对准确的时序分析结果而言是必不可少的。Quartus II TimeQuest Timing Analyzer为各种各样的时钟配置和典型时钟提供许多SDC命令。

    这个章节将介绍SDC可用的应用编程接口,以及描述指定的时钟特性。

    时钟(Clocks)

    使用create_clock命令为任何register, port或pin进行时钟特性描述,使其具有独一的时钟特性。例6–2展示了create_clock命令:

    Example 6–2. create_clock Command

    create_clock

    -period

    [-name ]

    [-waveform ]

    [-add]

    Table 6–6. create_clock Command Options

    选项描述-period 指定时钟周期[-name ]指定时钟名称(不一定是约束时钟的节点名称)[-waveform ]指定时钟上升沿/下降沿[-add]可以对一个时钟节点进行多个时钟约束指定你要约束的时钟(目标节点)

    Example 6–3 约束时钟频率100MHz,占空比50%,0ns上升沿,5ns下降沿。

    Example 6–3. 100MHz Clock Creation

    create_clock –period 10 –waveform 0 5 clk

    Example 6–4和上例相差90度的相位。

    Example 6–4. 100MHz Shifted by 90 Degrees Clock Creation

    create_clock –period 10 –waveform 2.5 7.5 clk_sys

    使用create_clock命令约束时钟缺省的source Latency值为0。Quartus II TimeQuest Timing Analyzer自动为非虚拟时钟(non-virtual clocks)计算时钟网络延时(clock’s network latency)。

    Quartus II Handbook, Volume 3 6-29

    生成时钟(Generated Clocks)

    Quartus II TimeQuest Timing Analyzer可以把修改或改变主时钟(或者引入时钟)特性的分频时钟、波纹时钟和电路作为生成时钟。

    你可以定义这些电路的输出作为生成时钟。这些定义可以让Quartus II TimeQuest Timing Analyzer分析这些时钟以及关联的时钟网络延时(network latency)。

    使用create_generated_clock命令定义生成时钟。

    Example 6–5. create_generated_clock Command

    create_generated_clock

    [-name ]

    -source

    [-edges ]

    [-edge_shift ]

    [-divide_by ]

    [-multiply_by ]

    [-duty_cycle ]

    [-add]

    [-invert]

    [-master_clock ]

    [-phase ]

    [-offset ]

    Table 6–7. create_generated_clock Command Options

    选项描述-name 生成时钟名-source 指定被设定的时钟节点-edges |

    -edge_shift -edges指定和主时钟的上升沿和下降沿有关的新的上升沿和下降沿-divide_by |

    -multiply_by -divide_by和-multiply_by要素是基于第一个时钟上升沿,通过设定来延长或者缩短指定要素的波形-duty_cycle 指定生成时钟的占空比-add允许你对同一个管脚添加多个时钟约束-invert-master_clo

    展开全文
  • Android修改时钟字体

    2020-08-07 09:52:45
    1.将需要添加的ttf字体文件...2.修改 frameworks/base/data/fonts/Android.mk 文件,将字体文件编译到 system/fonts/ 目录中 M:frameworks/base/data/fonts/Android.mk font_src_files := \ AndroidClock.ttf \ clo

    1.将需要添加的ttf字体文件放在 frameworks/base/data/fonts/ 目录

    A:frameworks/base/data/fonts/clock_thin.ttf

    2.修改 frameworks/base/data/fonts/Android.mk 文件,将字体文件编译到 system/fonts/ 目录中

    M:frameworks/base/data/fonts/Android.mk

    font_src_files := \
        AndroidClock.ttf \
        clock_thin.ttf
    

    3.修改 frameworks/base/data/fonts/fonts.mk 文件

    frameworks/base/data/fonts/fonts.mk

    PRODUCT_PACKAGES := \
        DroidSansMono.ttf \
        AndroidClock.ttf \
        clock_thin.ttf \
        fonts.xml
    

    4.在 fonts.xml 文件中定义字体对应的名称

    frameworks/base/data/fonts/fonts.xml

    <family name="clock-font">
        <font weight="400" style="normal">clock_thin.ttf</font>
    </family>
    

    5.使用新添加的字体

    方法1:

    TextView textView = new TextView(mContext);
    textView.setTypeface(android.graphics.Typeface.createFromFile("/system/fonts/clock_thin.ttf"));
    

    方法2:

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="clock-font" />
    

    6.在项目中的具体使用实例

    alps/frameworks/base/core/java/android/widget/RemoteViews.java

    public class RemoteViews implements Parcelable, Filter {
        ...
        private class TextViewSizeAction extends Action {
            ...
            @Override
            public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
                final TextView target = root.findViewById(viewId);
                if (target == null) return;
    
                //通过特殊约定的参数(如77,0)来特殊设置TextView的字体
                if(units == -77 && size == 0f){
                    target.setTypeface(android.graphics.Typeface.createFromFile("/system/fonts/clock_thin.ttf"));
                }else{
                    target.setTextSize(units, size);
                }
            }
            ...
        }
        ...
    }
    

    alps/vendor/mediatek/proprietary/packages/apps/DeskClock/src/com/android/alarmclock/DigitalAppWidgetProvider.java

    public class DigitalAppWidgetProvider extends AppWidgetProvider {
        private static RemoteViews relayoutWidget(Context context, AppWidgetManager wm, int widgetId, Bundle options, boolean portrait) {
            final String packageName = context.getPackageName();
            final RemoteViews rv = new RemoteViews(packageName, R.layout.digital_widget);
            //通过特殊约定的参数(如77,0)来特殊设置TextView的字体,这里调用setTextViewTextSize方法就会调用RemoteViews的内部类TextViewSizeAction的apply方法
            rv.setTextViewTextSize(R.id.clock, -77, 0f);
            ...
        }
        ...
    }
    
    展开全文
  • 如果我们代码片段设置了时钟 不可能每次修改时间都改代码. 之前讲过通过ESP8266做中转站的方法 mqtt控制STM32ESP8266做中转站 我们可以利用串口或者WiFi输入指令来调用函数 RTC时钟例程 我的时钟代码直接用的正点...

    如果我们代码片段设置了时钟 不可能每次修改时间都改代码.
    之前讲过通过ESP8266做中转站的方法 mqtt控制STM32ESP8266做中转站
    我们可以利用串口或者WiFi输入指令来调用函数

    RTC时钟例程

    我的时钟代码直接用的正点原子STM32F103ZET6的例程 例程如下

    #include "sys.h"
    #include "delay.h"
    #include "usart.h"
    #include "rtc.h" 		    
    	   
    _calendar_obj calendar;//时钟结构体 
     
    static void RTC_NVIC_Config(void)
    {	
      NVIC_InitTypeDef NVIC_InitStructure;
    	NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn;		//RTC全局中断
    	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;	//先占优先级1位,从优先级3位
    	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;	//先占优先级0位,从优先级4位
    	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;		//使能该通道中断
    	NVIC_Init(&NVIC_InitStructure);		//根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器
    }
    
    //实时时钟配置
    //初始化RTC时钟,同时检测时钟是否工作正常
    //BKP->DR1用于保存是否第一次配置的设置
    //返回0:正常
    //其他:错误代码
    
    u8 RTC_Init(void)
    {
    	//检查是不是第一次配置时钟
    	u8 temp=0;
    	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);	//使能PWR和BKP外设时钟   
    	PWR_BackupAccessCmd(ENABLE);	//使能后备寄存器访问  
    	if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050)		//从指定的后备寄存器中读出数据:读出了与写入的指定数据不相乎
    		{	 			 
    		BKP_DeInit();	//复位备份区域 	
    		RCC_LSEConfig(RCC_LSE_ON);	//设置外部低速晶振(LSE),使用外设低速晶振
    		while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET&&temp<250)	//检查指定的RCC标志位设置与否,等待低速晶振就绪
    			{
    			temp++;
    			delay_ms(10);
    			}
    		if(temp>=250)return 1;//初始化时钟失败,晶振有问题	    
    		RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);		//设置RTC时钟(RTCCLK),选择LSE作为RTC时钟    
    		RCC_RTCCLKCmd(ENABLE);	//使能RTC时钟  
    		RTC_WaitForLastTask();	//等待最近一次对RTC寄存器的写操作完成
    		RTC_WaitForSynchro();		//等待RTC寄存器同步  
    		RTC_ITConfig(RTC_IT_SEC, ENABLE);		//使能RTC秒中断
    		RTC_WaitForLastTask();	//等待最近一次对RTC寄存器的写操作完成
    		RTC_EnterConfigMode();/// 允许配置	
    		RTC_SetPrescaler(32767); //设置RTC预分频的值
    		RTC_WaitForLastTask();	//等待最近一次对RTC寄存器的写操作完成
    		RTC_Set(2015,1,14,17,42,55);  //设置时间	
    		RTC_ExitConfigMode(); //退出配置模式  
    		BKP_WriteBackupRegister(BKP_DR1, 0X5050);	//向指定的后备寄存器中写入用户程序数据
    		}
    	else//系统继续计时
    		{
    
    		RTC_WaitForSynchro();	//等待最近一次对RTC寄存器的写操作完成
    		RTC_ITConfig(RTC_IT_SEC, ENABLE);	//使能RTC秒中断
    		RTC_WaitForLastTask();	//等待最近一次对RTC寄存器的写操作完成
    		}
    	RTC_NVIC_Config();//RCT中断分组设置		    				     
    	RTC_Get();//更新时间	
    	return 0; //ok
    
    }		 				    
    //RTC时钟中断
    //每秒触发一次  
    //extern u16 tcnt; 
    void RTC_IRQHandler(void)
    {		 
    	if (RTC_GetITStatus(RTC_IT_SEC) != RESET)//秒钟中断
    	{							
    		RTC_Get();//更新时间   
     	}
    	if(RTC_GetITStatus(RTC_IT_ALR)!= RESET)//闹钟中断
    	{
    		RTC_ClearITPendingBit(RTC_IT_ALR);		//清闹钟中断	  	
    	  RTC_Get();				//更新时间   
      	printf("Alarm Time:%d-%d-%d %d:%d:%d\n",calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);//输出闹铃时间	
    		
      	} 				  								 
    	RTC_ClearITPendingBit(RTC_IT_SEC|RTC_IT_OW);		//清闹钟中断
    	RTC_WaitForLastTask();	  	    						 	   	 
    }
    //判断是否是闰年函数
    //月份   1  2  3  4  5  6  7  8  9  10 11 12
    //闰年   31 29 31 30 31 30 31 31 30 31 30 31
    //非闰年 31 28 31 30 31 30 31 31 30 31 30 31
    //输入:年份
    //输出:该年份是不是闰年.1,是.0,不是
    u8 Is_Leap_Year(u16 year)
    {			  
    	if(year%4==0) //必须能被4整除
    	{ 
    		if(year%100==0) 
    		{ 
    			if(year%400==0)return 1;//如果以00结尾,还要能被400整除 	   
    			else return 0;   
    		}else return 1;   
    	}else return 0;	
    }	 			   
    //设置时钟
    //把输入的时钟转换为秒钟
    //以1970年1月1日为基准
    //1970~2099年为合法年份
    //返回值:0,成功;其他:错误代码.
    //月份数据表											 
    u8 const table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //月修正数据表	  
    //平年的月份日期表
    const u8 mon_table[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    u8 RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)
    {
    	u16 t;
    	u32 seccount=0;
    	if(syear<1970||syear>2099)return 1;	   
    	for(t=1970;t<syear;t++)	//把所有年份的秒钟相加
    	{
    		if(Is_Leap_Year(t))seccount+=31622400;//闰年的秒钟数
    		else seccount+=31536000;			  //平年的秒钟数
    	}
    	smon-=1;
    	for(t=0;t<smon;t++)	   //把前面月份的秒钟数相加
    	{
    		seccount+=(u32)mon_table[t]*86400;//月份秒钟数相加
    		if(Is_Leap_Year(syear)&&t==1)seccount+=86400;//闰年2月份增加一天的秒钟数	   
    	}
    	seccount+=(u32)(sday-1)*86400;//把前面日期的秒钟数相加 
    	seccount+=(u32)hour*3600;//小时秒钟数
        seccount+=(u32)min*60;	 //分钟秒钟数
    	seccount+=sec;//最后的秒钟加上去
    
    	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);	//使能PWR和BKP外设时钟  
    	PWR_BackupAccessCmd(ENABLE);	//使能RTC和后备寄存器访问 
    	RTC_SetCounter(seccount);	//设置RTC计数器的值
    
    	RTC_WaitForLastTask();	//等待最近一次对RTC寄存器的写操作完成  	
    	return 0;	    
    }
    
    //初始化闹钟		  
    //以1970年1月1日为基准
    //1970~2099年为合法年份
    //syear,smon,sday,hour,min,sec:闹钟的年月日时分秒   
    //返回值:0,成功;其他:错误代码.
    u8 RTC_Alarm_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)
    {
    	u16 t;
    	u32 seccount=0;
    	if(syear<1970||syear>2099)return 1;	   
    	for(t=1970;t<syear;t++)	//把所有年份的秒钟相加
    	{
    		if(Is_Leap_Year(t))seccount+=31622400;//闰年的秒钟数
    		else seccount+=31536000;			  //平年的秒钟数
    	}
    	smon-=1;
    	for(t=0;t<smon;t++)	   //把前面月份的秒钟数相加
    	{
    		seccount+=(u32)mon_table[t]*86400;//月份秒钟数相加
    		if(Is_Leap_Year(syear)&&t==1)seccount+=86400;//闰年2月份增加一天的秒钟数	   
    	}
    	seccount+=(u32)(sday-1)*86400;//把前面日期的秒钟数相加 
    	seccount+=(u32)hour*3600;//小时秒钟数
        seccount+=(u32)min*60;	 //分钟秒钟数
    	seccount+=sec;//最后的秒钟加上去 			    
    	//设置时钟
    	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);	//使能PWR和BKP外设时钟   
    	PWR_BackupAccessCmd(ENABLE);	//使能后备寄存器访问  
    	//上面三步是必须的!
    	
    	RTC_SetAlarm(seccount);
     
    	RTC_WaitForLastTask();	//等待最近一次对RTC寄存器的写操作完成  	
    	
    	return 0;	    
    }
    
    
    //得到当前的时间
    //返回值:0,成功;其他:错误代码.
    u8 RTC_Get(void)
    {
    	static u16 daycnt=0;
    	u32 timecount=0; 
    	u32 temp=0;
    	u16 temp1=0;	  
        timecount=RTC_GetCounter();	 
     	temp=timecount/86400;   //得到天数(秒钟数对应的)
    	if(daycnt!=temp)//超过一天了
    	{	  
    		daycnt=temp;
    		temp1=1970;	//从1970年开始
    		while(temp>=365)
    		{				 
    			if(Is_Leap_Year(temp1))//是闰年
    			{
    				if(temp>=366)temp-=366;//闰年的秒钟数
    				else {temp1++;break;}  
    			}
    			else temp-=365;	  //平年 
    			temp1++;  
    		}   
    		calendar.w_year=temp1;//得到年份
    		temp1=0;
    		while(temp>=28)//超过了一个月
    		{
    			if(Is_Leap_Year(calendar.w_year)&&temp1==1)//当年是不是闰年/2月份
    			{
    				if(temp>=29)temp-=29;//闰年的秒钟数
    				else break; 
    			}
    			else 
    			{
    				if(temp>=mon_table[temp1])temp-=mon_table[temp1];//平年
    				else break;
    			}
    			temp1++;  
    		}
    		calendar.w_month=temp1+1;	//得到月份
    		calendar.w_date=temp+1;  	//得到日期 
    	}
    	temp=timecount%86400;     		//得到秒钟数   	   
    	calendar.hour=temp/3600;     	//小时
    	calendar.min=(temp%3600)/60; 	//分钟	
    	calendar.sec=(temp%3600)%60; 	//秒钟
    	calendar.week=RTC_Get_Week(calendar.w_year,calendar.w_month,calendar.w_date);//获取星期   
    	return 0;
    }	 
    //获得现在是星期几
    //功能描述:输入公历日期得到星期(只允许1901-2099年)
    //输入参数:公历年月日 
    //返回值:星期号																						 
    u8 RTC_Get_Week(u16 year,u8 month,u8 day)
    {	
    	u16 temp2;
    	u8 yearH,yearL;
    	
    	yearH=year/100;	yearL=year%100; 
    	// 如果为21世纪,年份数加100  
    	if (yearH>19)yearL+=100;
    	// 所过闰年数只算1900年之后的  
    	temp2=yearL+yearL/4;
    	temp2=temp2%7; 
    	temp2=temp2+day+table_week[month-1];
    	if (yearL%4==0&&month<3)temp2--;
    	return(temp2%7);
    }			 
    
    
    

    修改方法

    从例程中我们得知 修改时钟的函数是 u8 RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)

    我们可以利用串口输入一串数字,再把对应的数字放入各个参数中,再调用此函数。
    在这里插入图片描述

    代码及其注释

    其中重要部分是

    
    static u16 syear=2020;
    static u8 smon=11;
    static u8 sday=18;
    static u8 hour=19;
    static u8 min=53;
    static u8 sec=53;
    if(USART_RX_STA&0x8000) //如果串口收到消息   这里串口是用的原子例程代码稍作修改的 
    {
    	if(USART_RX_BUF[0]=='#') //判断串口输入 第0个字符是不是#  
    	{
    		if(USART_RX_BUF[1]=='#')  //判断第1个字符
    		{
    			if(USART_RX_BUF[2]=='#')  //判断第0个字符
    			{
    			//连续判断三个#字符  即输入命令修改格式  防止误操作   
    			//之后 第3-6字符表示 年   7-8 月份  9-10日
    				syear=((USART_RX_BUF[3]-'0')*1000)+((USART_RX_BUF[4]-'0')*100)+((USART_RX_BUF[5]-'0')*10)+(USART_RX_BUF[6]-'0');
    				smon=((USART_RX_BUF[7]-'0')*10)+(USART_RX_BUF[8]-'0');
    				sday=((USART_RX_BUF[9]-'0')*10)+(USART_RX_BUF[10]-'0');
    				hour=((USART_RX_BUF[11]-'0')*10)+(USART_RX_BUF[12]-'0');
    				min=((USART_RX_BUF[13]-'0')*10)+(USART_RX_BUF[14]-'0');
    				sec=((USART_RX_BUF[15]-'0')*10)+(USART_RX_BUF[16]-'0');
    				RTC_Set(syear,smon,sday,hour,min,sec);//设置时间
    				printf("Updated");
    				printf("%d-%d-%d %d:%d:%d\r\n",syear,smon,sday,hour,min,sec);
    			}
    		}
    	}
    }
    

    扩展和延伸

    之后大部分需要反复调节的函数,如tftlcd显示屏 中字符串等显示的位置。都可以通过串口的形式 利用指令修改
    从而避免反复烧录,增加了效率。

    其次,串口直接接上esp8266即实现了WIFI修改。

    展开全文
  • 有一个项目,需要在启动的时候根据eeprom的某个参数来配置时钟,最开始的做法是按正常模式配置时钟,然后读取eeprom的参数,然后根据参数配置时钟,在仿真的时候却发现,系统时钟还是最开始设置的,后来并没有改变,...
  • FPGA的板子使用外部50MHZ的晶振作为系统时钟。该PLL的输入输出接口如表1所示:信号名方向描述Inclk0inputPLL输入时钟aresetInputPLL复位信号,低电平复位Lockedoutput该信号指示PLL锁定以后稳定输出,高有效C0...
  • 3.1 u-boot-2016.03 修改时钟、设置内存控制器、配置UART
  • Centos-6.5修改时钟

    千次阅读 2017-08-29 07:59:47
    修改配置文件来修改时区1、修改/etc/sysconfig/clock ZONE=Asia/Shanghai 2、rm /etc/localtime3、链接到上海时区文件   ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 执行完上述过程后,重启机器...
  • timedatectl set-timezone Asia/Shanghai hwclock --set --date "2018-12-20 16:37:30" 这样是修改的硬件时钟,重启也会有效的
  • STM32F10XX如何时钟 概述: 以前在大学的时候学习stm32的...从图中所示,除去Flash存储器编程接口时钟、全速USB OTG的48MHz时钟、I2S2和I2S3的时钟、 以太网MAC的时钟这四种时钟,所有的外设的时钟都是从从系统时钟(SY
  • 请问大神们如何在这个程序里添加串口来改变时钟啊 #include #include #define uchar unsigned char #define uint unsigned int /*七段共阴管显示定义*/ //此表为 LED 的字模, 共阴数码管 0-9 - uchar code ...
  • 三、修改时钟和中断 u-boot 第一个要运行的程序arch/arm/cpu/arm920t/ start.S      1、 屏蔽AT91RM9200使用的LED代码 mrs r0, cpsr  bic r0, r0, #0x1f  orr r0, r0, #0xd3  msr cpsr, r0  /*bl ...
  • 1、修改时钟: 在u-boot-2016.05\arch\arm\cpu\arm920t\start.S中将 /* * 设置时钟 */ /* FCLK:HCLK:PCLK = 1:2:4 */ /* default FCLK is 120 MHz ! */ ldr r0, =CLKDIVN mov r1, #3 str r1,
  • stm32-04-修改时钟频率

    2020-12-09 10:36:25
    目录新建板级支持包将.c文件加入到工程文件下的user中并在魔法棒中配置.h文件夹的路径(同03一样)根据原理图编写.c文件和.h文件 新建板级支持包 将.c文件加入到工程文件下的user中并在魔法棒中配置.h文件夹的路径...
  • 三、修改代码 一、准备工作 由于u-boot2012并没有显性的支持2440。需要手动增加2440目录。还需要增加配置文件2440.h 二、分析调试代码 1、在start.S中,只是设置了时钟比例,有SDRAM的初始化 /* FCLK:HCLK...
  • 今天要学习一下S3C2440 的时钟体系 这个是整体的时钟框图 其中的USB 和camera 的时钟是一个单独的分频器分频出来的 只是给这两个外设用 我们暂且不去讨论。 主要的时钟就是 F_CLK 、HCLK、 PCLK、这三个时钟。 ...
  • 一、修改时钟 在配置文件include/configstq2440.h中加入S3C2440的配置,屏蔽掉S3C2410的配置 //#defineCONFIG_S3C2410 /* specifically aSAMSUNG S3C2410 SoC */ #define CONFIG_S3C2440 //#defineCONFIG_SMDK...
  • 现在有个问题,我想动态的调整时钟的周期值,这样就可以改变输出的频率了。时钟描述文件tim.c中:void MX_TIM4_Init(void){TIM_MasterConfigTypeDef sMasterConfig = {0};TIM_OC_InitTypeDef sConfigO...
  • Linux时钟修改提前1年(比如更换机器的主板、或时区不一致导致),再修改为正确时间后查询无数据 原因分析: zabbix对于晚于最新数据1个小时之后的数据,不再接收。 最新数据:即时间戳最大的数值 ...
  • 移植uboot第三步:修改时钟

    千次阅读 2016-08-10 15:07:20
    因为是基于s3c2410改的boot,2410和2440在使用上区别不大,所以暂时修改不大。 1.还是从start.S依次往下看。 a.设置管理模式的代码都没有条件编译,肯定差不多,跳过。 b.关闭看门狗的条件编译是CONFIG_S3C24...
  • 本篇博客是在参考博客:https://blog.csdn.net/u012468376/article/details/73350998时钟案例源代码的基础上进行修改的。 目的想实现的功能是:实现给定输入,跳转到指定时刻。(只是跳转到指定时刻,不会自动以这...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,142
精华内容 1,256
关键字:

修改时钟