Skip to content

Commit 4382c3f

Browse files
committed
添加TIM8支持,其他微修
1 parent 47050d9 commit 4382c3f

File tree

7 files changed

+211
-68
lines changed

7 files changed

+211
-68
lines changed

STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.c

Lines changed: 93 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -893,7 +893,7 @@ void sys_TIM1PWM_ENABLE(void)
893893

894894
TIM1_Handler.Instance = TIM1;
895895
TIM1_Handler.Init.Prescaler = (72-1);
896-
TIM1_Handler.Init.CounterMode = TIM_COUNTERMODE_UP;
896+
TIM1_Handler.Init.CounterMode = TIM_COUNTERMODE_CENTERALIGNED1;
897897
TIM1_Handler.Init.Period = tim1arr; //重装载值,16位
898898
TIM1_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
899899
TIM1_Handler.Init.RepetitionCounter = 0;
@@ -936,7 +936,7 @@ void sys_TIM1PWM_ENABLE(void)
936936
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_LOW; //可选互补通道的有效极性
937937
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; //disable就好
938938
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; //空闲电平极性选择(没有启用时的电平,谨慎修改)(也有可能是刹车时的电平)
939-
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
939+
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_SET;
940940
HAL_TIM_PWM_ConfigChannel(&TIM1_Handler, &sConfigOC, TIM_CHANNEL_1);
941941

942942
sConfigOC.Pulse = tim1arr/2;
@@ -968,6 +968,97 @@ void TIM1_set_Channel_Pulse(u8 channel,float percent)
968968
}
969969

970970

971+
#endif
972+
973+
/*________________________________________用户定时器8PWM配置_________________________________________________________*/
974+
#if (STSTEM_TIM8PWM_ENABLE) && ((STM32F103xG) || (STM32F103xE))
975+
TIM_HandleTypeDef TIM8_Handler;
976+
977+
void sys_TIM8PWM_ENABLE(void)
978+
{
979+
980+
TIM_ClockConfigTypeDef sClockSourceConfig;
981+
TIM_MasterConfigTypeDef sMasterConfig;
982+
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;
983+
TIM_OC_InitTypeDef sConfigOC;
984+
985+
TIM1_Handler.Instance = TIM8;
986+
TIM1_Handler.Init.Prescaler = (72-1);
987+
TIM1_Handler.Init.CounterMode = TIM_COUNTERMODE_CENTERALIGNED1;
988+
TIM1_Handler.Init.Period = tim8arr; //重装载值,16位
989+
TIM1_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
990+
TIM1_Handler.Init.RepetitionCounter = 0;
991+
HAL_TIM_Base_Init(&TIM8_Handler);
992+
993+
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; //时钟源来自内部(不启用外部ETR引脚作为时钟源)
994+
HAL_TIM_ConfigClockSource(&TIM8_Handler, &sClockSourceConfig);
995+
996+
HAL_TIM_PWM_Init(&TIM8_Handler);
997+
998+
/*如果要用主从定时器,参考https://my.oschina.net/u/4315748/blog/3220499*/
999+
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; //不输出信号给其他外设
1000+
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; //不使用定时器主从功能,即不用TIM1的定时中断作为其他定时器的计数源
1001+
HAL_TIMEx_MasterConfigSynchronization(&TIM8_Handler, &sMasterConfig);
1002+
1003+
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; //默认disable()
1004+
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; //默认disable
1005+
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_3; //锁定参数级别,如果死区等参数不再变的话就把LOCK调到最高级
1006+
/*死区时间设计:DeadTime的8个bits定义如下:DT为死区时间,Tdts为1/72M~13.9ns
1007+
DTG[7:5]=0xx => DT = DTG[7:0] x Tdtg, Tdtg = Tdts; 最大1.764us
1008+
DTG[7:5]=10x => DT = (64+DTG[5:0]) x Tdtg, Tdtg = 2 x Tdts; 最大3.5288us
1009+
DTG[7:5]=110 => DT = (32+DTG[4:0]) x Tdtg, Tdtg = 8 x Tdts; 最大7us
1010+
DTG[7:5]=111 => DT = (32+DTG[4:0]) x Tdtg, Tdtg = 16 x Tdts; 最大14us(此时值为0xff)
1011+
要3us则设为0xab
1012+
*/
1013+
sBreakDeadTimeConfig.DeadTime = 0xab; //死区时间设置 0x00~0xff
1014+
#if STSTEM_TIM8PWM_useBreak
1015+
sBreakDeadTimeConfig.BreakState = TIM_BREAK_ENABLE; //使能或失能TIMx刹车输入
1016+
#else
1017+
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
1018+
#endif
1019+
sBreakDeadTimeConfig.BreakFilter = 0xa; //刹车输入滤波,0x0~0xF
1020+
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_LOW; //刹车输入脚极性
1021+
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; //默认
1022+
HAL_TIMEx_ConfigBreakDeadTime(&TIM8_Handler, &sBreakDeadTimeConfig);
1023+
1024+
sConfigOC.OCMode = TIM_OCMODE_PWM1; //向上计数时,PWM1模式就是计数小于占空比值(TIMx_CNT<TIMx_CCR1),IO变为有效极性,否则相反
1025+
sConfigOC.Pulse = tim8arr/2; //占空比值(捕获比较值,16位)
1026+
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; //可选此通道的有效极性为高还是低
1027+
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_LOW; //可选互补通道的有效极性
1028+
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; //disable就好
1029+
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; //空闲电平极性选择(没有启用时的电平,谨慎修改)(也有可能是刹车时的电平)
1030+
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_SET;
1031+
HAL_TIM_PWM_ConfigChannel(&TIM8_Handler, &sConfigOC, TIM_CHANNEL_1);
1032+
1033+
sConfigOC.Pulse = tim1arr/2;
1034+
HAL_TIM_PWM_ConfigChannel(&TIM8_Handler, &sConfigOC, TIM_CHANNEL_2);
1035+
1036+
sConfigOC.Pulse = tim1arr/2;
1037+
HAL_TIM_PWM_ConfigChannel(&TIM8_Handler, &sConfigOC, TIM_CHANNEL_3);
1038+
1039+
sConfigOC.Pulse = tim1arr/2;
1040+
HAL_TIM_PWM_ConfigChannel(&TIM8_Handler, &sConfigOC, TIM_CHANNEL_4);
1041+
}
1042+
1043+
1044+
void TIM8_set_Channel_Pulse(u8 channel,float percent)
1045+
{
1046+
float compare;
1047+
if(percent < 0) percent = 0;
1048+
if(percent > 100) percent = 100.0;
1049+
percent /= 100.0;
1050+
compare = ((float)tim8arr) * percent;
1051+
switch(channel)
1052+
{
1053+
case TIM8PWM_Channel_1: TIM8->CCR1=(u32)compare;break;
1054+
case TIM8PWM_Channel_2: TIM8->CCR2=(u32)compare;break;
1055+
case TIM8PWM_Channel_3: TIM8->CCR3=(u32)compare;break;
1056+
case TIM8PWM_Channel_4: TIM8->CCR4=(u32)compare;break;
1057+
default:break;
1058+
}
1059+
}
1060+
1061+
9711062
#endif
9721063

9731064
/*________________________________________用户定时器6配置_________________________________________________________*/

STM32F1_HAL_freeRTOS_Framework/SYSTEM/PeriphConfig/PeriphConfig.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,17 @@ void sys_TIM1PWM_ENABLE(void);
197197
void TIM1_set_Channel_Pulse(u8 channel,float percent);
198198
#endif
199199

200+
/*_______________________________TIM1PWM___________________________________*/
201+
extern TIM_HandleTypeDef TIM8_Handler;
202+
void sys_TIM8PWM_ENABLE(void);
203+
#if (STSTEM_TIM8PWM_ENABLE) && ((STM32F103xG) || (STM32F103xE))
204+
#define TIM8PWM_Channel_1 1
205+
#define TIM8PWM_Channel_2 2
206+
#define TIM8PWM_Channel_3 3
207+
#define TIM8PWM_Channel_4 4
208+
void TIM8_set_Channel_Pulse(u8 channel,float percent);
209+
#endif
210+
200211
/*_______________________________TIM6___________________________________*/
201212
void sys_TIM6_ENABLE(void);
202213
extern TIM_HandleTypeDef TIM6_Handler;
@@ -292,13 +303,12 @@ u8 SD_Init(void);
292303
u8 SD_ReadDisk(u8* buf,u32 sector,u32 cnt);
293304
u8 SD_WriteDisk(u8 *buf,u32 sector,u32 cnt);
294305
void show_sdcard_info(void); //通过串口1打印SD卡相关信息
295-
#if (SYSTEM_SDIO_SD_ENABLE) && ((STM32F103xG) || (STM32F103xE))
296306

307+
#if (SYSTEM_SDIO_SD_ENABLE) && ((STM32F103xG) || (STM32F103xE))
297308
extern HAL_SD_CardInfoTypeDef SDCardInfo; //SD卡信息
298309
extern HAL_SD_CardCIDTypeDef SDCard_CID; //SD卡CID信息
299310
extern SD_HandleTypeDef SDCARD_Handler; //SD卡句柄
300311
#define SD_TIMEOUT ((uint32_t)100000000) //超时时间
301-
302312
#endif
303313

304314
/*____________________________FSMC for SARM_____________________________________________*/

STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.c

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,19 @@
22

33
/*
44
现存BUG记录:
5-
FIFO库的初始化经常不好使,返回值常为NULL,暂时不明原因
6-
sprintf()函数,有时会改变MCU执行速度,会变得超级快,现在先不动,如果再另一个项目重新遇到就换一个小巧简单的库
5+
FIFO库的初始化经常不好使,返回值常为NULL,暂时不明原因,不知道换成自己的malloc好不好使了,还没有试验
6+
sprintf()函数,有时会改变MCU执行速度,会变得超级快,现在先不动,如果在另一个项目重新遇到就换一个小巧简单的库
77
88
即将加上的东西:
9-
FATFS:就差移植原子两个.c文件里的各种API 和 mymolloc、myfree
10-
文件系统要实现:
11-
√ SD卡文件读存,
12-
内部FLASH划分区域当作文件系统读存,
13-
USB U盘读存,
14-
把内部FLASH划分一块通过USB插入电脑当作U盘,可在电脑操作文件的读存
15-
16-
把stdlib排除在项目之外(逐个.c文件查看),不编译,自己实现malloc和free函数(借鉴原子的),并替换在FIFO.c和ffsystem.c里面的
17-
确保工程内不含string、stdio和stdlib等不适合用于mcu平台的头文件,已经都用开源的线程安全软件或者自实现替换
18-
IAP:即将加上
19-
209
之后要做的:
2110
原子的FATFS的API再包装的移植
22-
FSMC驱动LCD的代码,和现有LCD代码的写寄存器、数据的底层函数融合,用预编译控制编译哪个
23-
24-
11+
FATFS:就差移植原子两个.c文件里的各种API 和 mymolloc、myfree
12+
文件系统要实现:
13+
√ SD卡文件读存,
14+
内部FLASH划分区域当作文件系统读存,
15+
USB U盘读存,
16+
把内部FLASH划分一块通过USB插入电脑当作U盘,可在电脑操作文件的读存
17+
IAP:即将加上
2518
线性回归:即将加上
2619
常用校验、加密算法:即将加上
2720
JPEG、GIF解码和BMP编解码:即将加上
@@ -31,7 +24,7 @@
3124
完成 移植菜单模板,连带按键检测也都搞了
3225
完成 FLASH存储开机次数
3326
待做 串口2、3完成相关的接收功能,与串口1一样的,用预编译控制是否编译相关代码
34-
待完善 完善菜单框架,有硬件基础(至少有多按键,LCD时)再完善好~~
27+
已完善 完善菜单框架,有硬件基础(至少有多按键,LCD时)再完善好~~
3528
完成 开始完成RTOS框架,写上所有API
3629
... 歇会儿
3730
开始所有HAL库的罗列!可以参考的:原子的HAL手册和历程直接复制;硬石的HAL每天一例(这个很多);安富莱
@@ -59,7 +52,6 @@
5952
uint32_t sysCoreClock; /*获取HCLK频率,外设时钟均来自此再分频*/
6053
u8 is_buzzer_once = 0;
6154
u8 is_buzzer_bibi = 0;
62-
uint8_t is_quitFault;
6355
void sys_MCU_Init_Seq(void)
6456
{
6557
/*设置时钟,8M * 9 = 72M,涉及到延时准确性,不要乱动!*/
@@ -125,11 +117,6 @@ void sys_MCU_Init_Seq(void)
125117
printf_uart(UART1,"StartUpTimes : %d\r\n",StartUpTimes);
126118
#endif
127119

128-
#if STSTEM_TIM2_ENABLE
129-
/*说明TIM2的用途*/
130-
sys_TIM2_ENABLE();
131-
#endif
132-
133120
#if SYSTEM_ADC1_ENABLE
134121
/*说明ADC1的用途*/
135122
sys_ADC1_ENABLE();
@@ -199,17 +186,32 @@ void sys_Device_Init_Seq(void)
199186
sys_TIM3PWM_ENABLE();
200187
#endif
201188

189+
/*初始化高级定时器1*/
202190
#if STSTEM_TIM1PWM_ENABLE
203191
sys_TIM1PWM_ENABLE();
204192
#endif
205193

194+
/*初始化高级定时器8*/
195+
#if (STSTEM_TIM8PWM_ENABLE) && ((STM32F103xG) || (STM32F103xE))
196+
sys_TIM8PWM_ENABLE();
197+
#endif
198+
199+
/*初始化时基定时器6*/
206200
#if (STSTEM_TIM6_ENABLE) && ((STM32F103xG) || (STM32F103xE))
207201
sys_TIM6_ENABLE();
208202
#endif
203+
204+
/*初始化时基定时器7*/
209205
#if (STSTEM_TIM7_ENABLE) && ((STM32F103xG) || (STM32F103xE))
210206
sys_TIM7_ENABLE();
211207
#endif
212208

209+
/*初始化多功能定时器2*/
210+
#if STSTEM_TIM2_ENABLE
211+
/*说明TIM2的用途*/
212+
sys_TIM2_ENABLE();
213+
#endif
214+
213215
/*初始化看门狗*/
214216
#if SYSTEM_IWDG_ENABLE
215217
sys_IWDG_ENABLE();

STM32F1_HAL_freeRTOS_Framework/SYSTEM/sys.h

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,8 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
312312
完全重映射 PE9/PE8 PE11/PE10 PE13/PE12 PE14 PE15
313313
*/
314314
/*默认并推荐不开启定时中断;引脚默认没有上下拉;初始化后默认没有打开相应通道的PWM输出,需要手动开启输出*/
315-
/*定时器工作在向上计数时,PWM信号边缘对齐;定时器工作在向上和向下计数模式时,PWM信号中心对其*/
316-
#define STSTEM_TIM1PWM_ENABLE 1 /*是否启用并初始化TIM1的三路互补PWM(前三个通道)和一路PWM(通道4)*/
315+
/*定时器工作在向上计数时,PWM信号边缘对齐;定时器工作在向上和向下计数模式时,PWM信号中心对齐*/
316+
#define STSTEM_TIM1PWM_ENABLE 0 /*是否启用并初始化TIM1的三路互补PWM(前三个通道)和一路PWM(通道4)*/
317317
#define STSTEM_TIM1PWM_useBreak 1 /*是否启用BKIN刹车信号控制输入,默认低电平有效*/
318318
/*选择每一个通道的有效电平和空闲电平(可能是刹车时的电平),默认死区3us,可修改*/
319319
#define STSTEM_TIM1PWM_REMAP_PARTIAL 0 /*定时器1部分引脚重映射,Partial remap, 引脚如上边所示*/
@@ -343,7 +343,44 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
343343
设置TIM1的PWM通道2的占空比百分数为88.8%,值需在0~100.0之间。即88.8%的低电平时间(本模板规范:低电平有效,即用电器工作电压)
344344
TIM1_set_Channel_Pulse(TIM1PWM_Channel_2,88.8);
345345
*/
346+
347+
/*hd系列外设,其他与上同理*/
348+
/*高级定时器8,专门用于产生PWM信号:三路互补PWM输出、死区控制、刹车信号输入*/
349+
/*引脚:
350+
CH1/CH1N CH2/CH2N CH3/CH3N CH4 BKIN(刹车信号输入)
351+
PC6/PA7 PC7/PB0 PC8/PB1 PC9 PA6
352+
*/
353+
/*默认并推荐不开启定时中断;引脚默认没有上下拉;初始化后默认没有打开相应通道的PWM输出,需要手动开启输出*/
354+
/*定时器工作在向上计数时,PWM信号边缘对齐;定时器工作在向上和向下计数模式时,PWM信号中心对齐*/
355+
/*没有重映射功能*/
356+
#define STSTEM_TIM8PWM_ENABLE 0 /*是否启用并初始化TIM8的三路互补PWM(前三个通道)和一路PWM(通道4)*/
357+
#define STSTEM_TIM8PWM_useBreak 1 /*是否启用BKIN刹车信号控制输入,默认低电平有效*/
358+
/*选择每一个通道的有效电平和空闲电平(可能是刹车时的电平),默认死区3us,可修改*/
359+
/*输出通道选择,共四个通道,可以相与打开多个通道,互补通道默认成对打开*/
360+
#define STSTEM_TIM8PWM_CHANNEL_ENABLE (B0000_0001|B0000_0010|B0000_0100|B0000_1000) /*必须加括号括起来*/
361+
#define tim8arr STSTEM_TIM8_Period_10K /*选择定时器1输出频率(预分频系数为72,这里选择重装值)*/
362+
#define STSTEM_TIM8_Period_1K (1000-1)
363+
#define STSTEM_TIM8_Period_2K (500-1)
364+
#define STSTEM_TIM8_Period_5K (200-1)
365+
#define STSTEM_TIM8_Period_10K (100-1)
366+
#define STSTEM_TIM8_Period_20K (50-1)
367+
#define STSTEM_TIM8_Period_50K (20-1)
368+
#define STSTEM_TIM8_Period_100K (10-1)
369+
#define STSTEM_TIM8_Period_200K (5-1)
370+
/*可用API:
371+
启动通道1~4的PWM输出
372+
HAL_TIM_PWM_Start(&TIM8_Handler,TIM_CHANNEL_1);
373+
374+
启动互补通道1~3的PWM输出
375+
HAL_TIMEx_PWMN_Start(&TIM8_Handler,TIM_CHANNEL_1);
346376
377+
关闭通道的PWM输出(通道选择同上)
378+
HAL_TIM_PWM_Stop(&TIM8_Handler,TIM_CHANNEL_1);
379+
HAL_TIMEx_PWMN_Stop(&TIM8_Handler,TIM_CHANNEL_1);
380+
381+
设置TIM1的PWM通道2的占空比百分数为88.8%,值需在0~100.0之间。即88.8%的低电平时间(本模板规范:低电平有效,即用电器工作电压)
382+
TIM8_set_Channel_Pulse(TIM8PWM_Channel_2,88.8);
383+
*/
347384

348385

349386
/*通过用定时器2:16位,四个独立通道可用于:输入捕获、输入比较、PWM、单脉冲,多种途径触发DMA中断*/
@@ -402,7 +439,7 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
402439
*/
403440

404441
/*hd系列外设,基本定时器6、7,只能用于定时中断,提供更多的同步功能*/
405-
#define STSTEM_TIM6_ENABLE 1
442+
#define STSTEM_TIM6_ENABLE 0
406443
#define tim6arr STSTEM_TIM6_Period_5K /*选择定时器6输出频率(预分频系数为72,这里选择重装值)*/
407444
#define STSTEM_TIM6_Period_1K (1000-1)
408445
#define STSTEM_TIM6_Period_2K (500-1)
@@ -412,7 +449,7 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
412449
#define STSTEM_TIM6_Period_50K (20-1)
413450
#define STSTEM_TIM6_Period_100K (10-1)
414451
#define STSTEM_TIM6_Period_200K (5-1)
415-
#define STSTEM_TIM7_ENABLE 1
452+
#define STSTEM_TIM7_ENABLE 0
416453
#define tim7arr STSTEM_TIM6_Period_5K /*选择定时器7输出频率(预分频系数为72,这里选择重装值)*/
417454
#define STSTEM_TIM7_Period_1K (1000-1)
418455
#define STSTEM_TIM7_Period_2K (500-1)
@@ -557,7 +594,7 @@ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
557594
#define SYSTEM_UART1_REMAP_ENABLE 0 /*串口1引脚重映射:TX/PB6, RX/PB7 */
558595
#define SYSTEM_UART1_BOUND 115200 /*串口1波特率*/
559596

560-
/*注:串口2在目前不能用,没有反应,不知道是HAL库问题还是芯片问题*/
597+
/*注:串口2在目前不能用,没有反应,HAL库问题*/
561598
#define SYSTEM_UART2_ENABLE 0 /*使能串口2 TX/PA2, RX/PA3 */
562599
#define SYSTEM_UART2_REMAP_ENABLE 0 /*串口2引脚重映射:TX/PD5, RX/PD6,可以设置,但对于C8T6无此引脚*/
563600
#define SYSTEM_UART2_BOUND 115200 /*串口2波特率*/
@@ -851,15 +888,14 @@ PD2 SDIO_CMD
851888

852889

853890
/*_____________系统函数_______________*/
854-
extern u16 StartUpTimes; /*用于保存开机次数,储存在最后一个或倒数第二个页*/
855-
extern uint32_t UIDw[3]; /*保存STM32内部UID识别码,全球唯一识别码*/
856-
extern uint32_t sysCoreClock; /*获取HCLK频率,外设时钟均来自此再分频*/
891+
extern u16 StartUpTimes; /*用于保存开机次数,储存在最后一个或倒数第二个页*/
892+
extern uint32_t UIDw[3]; /*保存STM32内部UID识别码,全球唯一识别码*/
893+
extern uint32_t sysCoreClock; /*获取HCLK频率,外设时钟均来自此再分频*/
857894

858895
void sys_MCU_Init_Seq(void); /*MCU外设初始化序列,所有初始化写到这里面*/
859896
void sys_Device_Init_Seq(void); /*器件外设初始化,并开机自检*/
860897

861-
extern uint8_t is_quitFault;
862-
void FaultASSERT(char* FaultMessage); /*表示初始化有问题,串口提示,指示灯或者蜂鸣器进行提示*/
898+
void FaultASSERT(char* FaultMessage); /*表示初始化有问题,串口提示,指示灯或者蜂鸣器进行提示*/
863899
int8_t Stm32_Clock_Init(uint32_t PLL); /*时钟系统配置*/
864900

865901
#if SYSTEM_UART1_ENABLE||SYSTEM_UART2_ENABLE||SYSTEM_UART3_ENABLE

0 commit comments

Comments
 (0)