-
stm32F4修改时钟频率,更换为8MHz晶振
2020-06-21 19:18:17stm32F4修改时钟的方法和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 文本配色,可以到我的下载区免费下载:
-
quartus 修改 时钟_FPGAQuartusII时钟约束.doc
2021-02-04 19:04:00FPGAQuartusII时钟约束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:451.将需要添加的ttf字体文件...2.修改 frameworks/base/data/fonts/Android.mk 文件,将字体文件编译到 system/fonts/ 目录中 M:frameworks/base/data/fonts/Android.mk font_src_files := \ AndroidClock.ttf \ clo1.将需要添加的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); ... } ... }
-
正点STM32 远程修改时钟
2020-08-31 10:51:36如果我们代码片段设置了时钟 不可能每次修改时间都改代码. 之前讲过通过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修改。
-
STM32运行中动态修改时钟
2020-01-08 23:26:50有一个项目,需要在启动的时候根据eeprom的某个参数来配置时钟,最开始的做法是按正常模式配置时钟,然后读取eeprom的参数,然后根据参数配置时钟,在仿真的时候却发现,系统时钟还是最开始设置的,后来并没有改变,... -
quartus 修改 时钟_quartus利用PLL IP核建立多个时钟输出
2020-12-19 10:27:29FPGA的板子使用外部50MHZ的晶振作为系统时钟。该PLL的输入输出接口如表1所示:信号名方向描述Inclk0inputPLL输入时钟aresetInputPLL复位信号,低电平复位Lockedoutput该信号指示PLL锁定以后稳定输出,高有效C0... -
三、移植u-boot-2016.03到Jz2440之修改时钟、内存控制器设置、UART设置
2020-03-07 09:48:183.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 执行完上述过程后,重启机器... -
centos正确修改时钟的方法 永久有效
2020-06-10 13:01:42timedatectl set-timezone Asia/Shanghai hwclock --set --date "2018-12-20 16:37:30" 这样是修改的硬件时钟,重启也会有效的 -
STM32F10XX如何修改时钟详细版
2020-05-21 14:53:52STM32F10XX如何时钟 概述: 以前在大学的时候学习stm32的...从图中所示,除去Flash存储器编程接口时钟、全速USB OTG的48MHz时钟、I2S2和I2S3的时钟、 以太网MAC的时钟这四种时钟,所有的外设的时钟都是从从系统时钟(SY -
如何通过串口修改时钟的时间
2017-07-21 08:59:43请问大神们如何在这个程序里添加串口来改变时钟啊 #include #include #define uchar unsigned char #define uint unsigned int /*七段共阴管显示定义*/ //此表为 LED 的字模, 共阴数码管 0-9 - uchar code ... -
(一)建立项目 修改时钟
2019-10-08 20:11:06三、修改时钟和中断 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 ... -
u-boot-2016.05移植:(2)、修改时钟 初始化sdram 重定位u-boot 配置smdk2440.h 修改u-boot.lds
2016-08-15 11:56:321、修改时钟: 在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-boot-修改时钟,SDRAM,串口
2019-10-01 09:17:57三、修改代码 一、准备工作 由于u-boot2012并没有显性的支持2440。需要手动增加2440目录。还需要增加配置文件2440.h 二、分析调试代码 1、在start.S中,只是设置了时钟比例,有SDRAM的初始化 /* FCLK:HCLK... -
嵌入式linux学习笔记--20200222--JZ2440V3 S3C2440 时钟树分析以及修改时钟的代码
2020-02-22 13:37:08今天要学习一下S3C2440 的时钟体系 这个是整体的时钟框图 其中的USB 和camera 的时钟是一个单独的分频器分频出来的 只是给这两个外设用 我们暂且不去讨论。 主要的时钟就是 F_CLK 、HCLK、 PCLK、这三个时钟。 ... -
u-boot-2012.04.01移植到TQ2440(二):修改时钟
2012-12-29 22:20:00一、修改时钟 在配置文件include/configstq2440.h中加入S3C2440的配置,屏蔽掉S3C2410的配置 //#defineCONFIG_S3C2410 /* specifically aSAMSUNG S3C2410 SoC */ #define CONFIG_S3C2440 //#defineCONFIG_SMDK... -
cubemx万年钟_CubeMX| 怎么动态的修改时钟周期?
2020-12-19 04:43:56现在有个问题,我想动态的调整时钟的周期值,这样就可以改变输出的频率了。时钟描述文件tim.c中:void MX_TIM4_Init(void){TIM_MasterConfigTypeDef sMasterConfig = {0};TIM_OC_InitTypeDef sConfigO... -
zabbix系列:(修改时钟导致)无最近历史数据问题解决方案
2020-08-22 13:00:26Linux时钟被修改提前1年(比如更换机器的主板、或时区不一致导致),再修改为正确时间后查询无数据 原因分析: zabbix对于晚于最新数据1个小时之后的数据,不再接收。 最新数据:即时间戳最大的数值 ... -
移植uboot第三步:修改时钟
2016-08-10 15:07:20因为是基于s3c2410改的boot,2410和2440在使用上区别不大,所以暂时修改不大。 1.还是从start.S依次往下看。 a.设置管理模式的代码都没有条件编译,肯定差不多,跳过。 b.关闭看门狗的条件编译是CONFIG_S3C24... -
canvas画布修改时钟:实现给定输入,跳转到指定时刻
2019-03-20 23:09:14本篇博客是在参考博客:https://blog.csdn.net/u012468376/article/details/73350998时钟案例源代码的基础上进行修改的。 目的想实现的功能是:实现给定输入,跳转到指定时刻。(只是跳转到指定时刻,不会自动以这...
-
Caused by: java.security.cert.CertificateException: No name matching cas.jackray.com found
-
MySQL 性能优化(思路拓展及实操)
-
5-Verilog HDL时序逻辑与组合逻辑设计.7z
-
maven更新慢等问题换镜像
-
MMM 集群部署实现 MySQL 高可用和读写分离
-
2014年重庆理工大学《计算机网络基础A》期末考试试卷.pdf
-
Dockerflie:tf-nightly-gpu-docker-cuda11.1
-
2021/03/03学习总结
-
Day2-运算符和变量作业
-
docker菜鸟学习笔记之ubuntu容器中安装python3和卸载python2
-
HW解决方案业务拓展指引.pptx
-
华为1+X——网络系统建设与运维(高级)
-
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
-
王力安防首次公开发行股票招股说明书.pdf
-
C/C++反汇编解密
-
【C++】迭代器
-
libFuzzer视频教程
-
BNUZ计科一班作业第七题,负数进制
-
计算多位数个十百位数并求和.txt
-
呆逼萌新的小程序。。。。。