Signed-off-by: kevin <kevin@lmve.net>
This commit is contained in:
2022-04-28 15:08:12 +08:00
parent 0e275a0c18
commit 34e444d832
69 changed files with 2553 additions and 2216 deletions
+8 -8
View File
@@ -9,17 +9,17 @@ CDefines=USE_HAL_DRIVER;STM32F103xB;USE_HAL_DRIVER;USE_HAL_DRIVER;
[PreviousGenFiles]
AdvancedFolderStructure=true
HeaderFileListSize=3
HeaderFiles#0=C:/Users/wuwen/Desktop/morse_code_trainer/f103c8t6_keil/Core/Inc/stm32f1xx_it.h
HeaderFiles#1=C:/Users/wuwen/Desktop/morse_code_trainer/f103c8t6_keil/Core/Inc/stm32f1xx_hal_conf.h
HeaderFiles#2=C:/Users/wuwen/Desktop/morse_code_trainer/f103c8t6_keil/Core/Inc/main.h
HeaderFiles#0=C:/Users/kevin/Desktop/morse_code_trainer/f103c8t6_keil/Core/Inc/stm32f1xx_it.h
HeaderFiles#1=C:/Users/kevin/Desktop/morse_code_trainer/f103c8t6_keil/Core/Inc/stm32f1xx_hal_conf.h
HeaderFiles#2=C:/Users/kevin/Desktop/morse_code_trainer/f103c8t6_keil/Core/Inc/main.h
HeaderFolderListSize=1
HeaderPath#0=C:/Users/wuwen/Desktop/morse_code_trainer/f103c8t6_keil/Core/Inc
HeaderPath#0=C:/Users/kevin/Desktop/morse_code_trainer/f103c8t6_keil/Core/Inc
HeaderFiles=;
SourceFileListSize=3
SourceFiles#0=C:/Users/wuwen/Desktop/morse_code_trainer/f103c8t6_keil/Core/Src/stm32f1xx_it.c
SourceFiles#1=C:/Users/wuwen/Desktop/morse_code_trainer/f103c8t6_keil/Core/Src/stm32f1xx_hal_msp.c
SourceFiles#2=C:/Users/wuwen/Desktop/morse_code_trainer/f103c8t6_keil/Core/Src/main.c
SourceFiles#0=C:/Users/kevin/Desktop/morse_code_trainer/f103c8t6_keil/Core/Src/stm32f1xx_it.c
SourceFiles#1=C:/Users/kevin/Desktop/morse_code_trainer/f103c8t6_keil/Core/Src/stm32f1xx_hal_msp.c
SourceFiles#2=C:/Users/kevin/Desktop/morse_code_trainer/f103c8t6_keil/Core/Src/main.c
SourceFolderListSize=1
SourcePath#0=C:/Users/wuwen/Desktop/morse_code_trainer/f103c8t6_keil/Core/Src
SourcePath#0=C:/Users/kevin/Desktop/morse_code_trainer/f103c8t6_keil/Core/Src
SourceFiles=;
+5
View File
@@ -71,6 +71,11 @@ void Error_Handler(void);
#define run_led_GPIO_Port GPIOB
#define en_c_Pin GPIO_PIN_3
#define en_c_GPIO_Port GPIOB
#define en_a_Pin GPIO_PIN_4
#define en_a_GPIO_Port GPIOB
#define en_a_EXTI_IRQn EXTI4_IRQn
#define en_b_Pin GPIO_PIN_5
#define en_b_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
+1
View File
@@ -55,6 +55,7 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void EXTI4_IRQHandler(void);
void TIM2_IRQHandler(void);
/* USER CODE BEGIN EFP */
+12 -2
View File
@@ -269,8 +269,8 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(mute_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : tack_a_Pin tack_b_Pin en_c_Pin */
GPIO_InitStruct.Pin = tack_a_Pin|tack_b_Pin|en_c_Pin;
/*Configure GPIO pins : tack_a_Pin tack_b_Pin en_c_Pin en_b_Pin */
GPIO_InitStruct.Pin = tack_a_Pin|tack_b_Pin|en_c_Pin|en_b_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
@@ -289,6 +289,16 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(run_led_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : en_a_Pin */
GPIO_InitStruct.Pin = en_a_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(en_a_GPIO_Port, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI4_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI4_IRQn);
}
/* USER CODE BEGIN 4 */
+14
View File
@@ -198,6 +198,20 @@ void SysTick_Handler(void)
/* please refer to the startup file (startup_stm32f1xx.s). */
/******************************************************************************/
/**
* @brief This function handles EXTI line4 interrupt.
*/
void EXTI4_IRQHandler(void)
{
/* USER CODE BEGIN EXTI4_IRQn 0 */
/* USER CODE END EXTI4_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(en_a_Pin);
/* USER CODE BEGIN EXTI4_IRQn 1 */
/* USER CODE END EXTI4_IRQn 1 */
}
/**
* @brief This function handles TIM2 global interrupt.
*/
+7
View File
@@ -53,3 +53,10 @@ void GEI_BUTTON_CODE(button *bt)
}
int GET_ENCODE(encoder *e)
{
int buff;
buff=e->code;
e->code=0;
return buff;
}
+1 -1
View File
@@ -22,5 +22,5 @@ typedef struct
} encoder;
void GEI_BUTTON_CODE(button *bt);
int GET_ENCODE(encoder *e);
#endif /* ENCODER_H_ */
@@ -17,6 +17,9 @@ extern TIM_HandleTypeDef htim2;
#define MUTE(x) HAL_GPIO_WritePin(mute_GPIO_Port, mute_Pin, x)
#define tack_a() HAL_GPIO_ReadPin(tack_a_GPIO_Port, tack_a_Pin)
#define tack_b() HAL_GPIO_ReadPin(tack_b_GPIO_Port, tack_b_Pin)
#define RUNLED_TICK() HAL_GPIO_TogglePin(run_led_GPIO_Port, run_led_Pin)
void IIC_SAND_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,uint8_t *DATAS,uint16_t LONG);
+50 -9
View File
@@ -167,20 +167,26 @@ char getmorsecode(uint8_t len,uint8_t code)
}
button B1;
button B1;//创建一个按钮
encoder E1;//创建一个编码器
int mode=0;
uint32_t run_tick=0;
char str[16];
uint16_t fps=0,fps_=0;
int encode_c=0;
void mymain()
{
int mode=0;
uint32_t run_tick=0;
char str[16];
uint16_t fps=0,fps_=0;
//按钮定义接口
B1.GPIOx=en_c_GPIO_Port;
B1.GPIO_Pin=en_c_Pin;
OLED_Init();
OLED_Init();//屏幕初始化
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);//启动n通道的pwm
MUTE(1);
//add_a_note(1000,50,1000);
MUTE(1);//静音
//add_a_note(1000,50,1000);//开机响一声
while(1)
@@ -196,6 +202,14 @@ void mymain()
break;
case 1:
//主界面
sprintf(str,"BUTTON:%d",B1.code);
OLED_Str(0,0,8,str,1);
encode_c+=GET_ENCODE(&E1);
sprintf(str,"ENCODE:%d",encode_c);
OLED_Str(0,8,8,str,1);
fps_++;
sprintf(str,"FPS:%d",fps);
OLED_Str(0,56,8,str,1);
@@ -208,7 +222,7 @@ void mymain()
GEI_BUTTON_CODE(&B1);//循环更新按钮
OLED_Cache_to_hardware();//刷新屏幕
buzzer_play_server();
if(HAL_GetTick()>run_tick)
@@ -221,3 +235,30 @@ void mymain()
}
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
switch (GPIO_Pin)
{
case en_a_Pin:
switch(HAL_GPIO_ReadPin(en_b_GPIO_Port,en_b_Pin))
{
case 1:
E1.code+=1;
E1.move_flag=1;
break;
case 0:
E1.code-=1;
E1.move_flag=1;
break;
}
break;
default:
break;
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
}
}
-7
View File
@@ -1105,10 +1105,3 @@ void OLED_square(int Start_x, int Start_y, int End_x, int End_y, char type)
}
}
+4
View File
@@ -17,6 +17,10 @@
#define Y_WIDTH 64
#define Y_WIDTH_ 8
void OLED_Init(void);
void OLED_Cache_to_hardware();
File diff suppressed because one or more lines are too long
+16 -4
View File
@@ -183,7 +183,7 @@
<Group>
<GroupName>Application/MDK-ARM</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -203,7 +203,7 @@
<Group>
<GroupName>Application/User/Core</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -247,7 +247,7 @@
<Group>
<GroupName>Drivers/STM32F1xx_HAL_Driver</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -423,7 +423,7 @@
<Group>
<GroupName>Drivers/CMSIS</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -507,6 +507,18 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\MYDEIVERS\encode.c</PathWithFileName>
<FilenameWithoutPath>encode.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@@ -523,6 +523,11 @@
<FileType>1</FileType>
<FilePath>.\MYDEIVERS\buzzer.c</FilePath>
</File>
<File>
<FileName>encode.c</FileName>
<FileType>1</FileType>
<FilePath>.\MYDEIVERS\encode.c</FilePath>
</File>
</Files>
</Group>
<Group>
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,31 @@
f103c8t6_keil\encode.o: MYDEIVERS\encode.c
f103c8t6_keil\encode.o: MYDEIVERS\encode.h
f103c8t6_keil\encode.o: ../Core/Inc/main.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h
f103c8t6_keil\encode.o: ../Core/Inc/stm32f1xx_hal_conf.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h
f103c8t6_keil\encode.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h
f103c8t6_keil\encode.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h
f103c8t6_keil\encode.o: ../Drivers/CMSIS/Include/core_cm3.h
f103c8t6_keil\encode.o: C:\Keil_v5\ARM\ARMCC\Bin\..\include\stdint.h
f103c8t6_keil\encode.o: ../Drivers/CMSIS/Include/cmsis_version.h
f103c8t6_keil\encode.o: ../Drivers/CMSIS/Include/cmsis_compiler.h
f103c8t6_keil\encode.o: ../Drivers/CMSIS/Include/cmsis_armcc.h
f103c8t6_keil\encode.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h
f103c8t6_keil\encode.o: C:\Keil_v5\ARM\ARMCC\Bin\..\include\stddef.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_i2c.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h
f103c8t6_keil\encode.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h
Binary file not shown.
@@ -22,27 +22,31 @@ Dialog DLL: TCM.DLL V1.53.0.0
<h2>Project:</h2>
C:\Users\kevin\Desktop\morse_code_trainer\f103c8t6_keil\MDK-ARM\f103c8t6_KEIL.uvprojx
Project File Date: 04/19/2022
Project File Date: 04/28/2022
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'f103c8t6_KEIL'
compiling mymain.c...
MYDEIVERS\oled.h(22): warning: #1295-D: Deprecated declaration OLED_Cache_to_hardware - give arg types
MYDEIVERS\oled.h(26): warning: #1295-D: Deprecated declaration OLED_Cache_to_hardware - give arg types
void OLED_Cache_to_hardware();
MYDEIVERS\buzzer.h(16): warning: #1295-D: Deprecated declaration buzzer_play_server - give arg types
char buzzer_play_server();
MYDEIVERS\mymain.h(23): warning: #1295-D: Deprecated declaration mymain - give arg types
void mymain();
MYDEIVERS\mymain.c(182): warning: #188-D: enumerated type mixed with another type
MUTE(1);
MYDEIVERS\mymain.c(200): warning: #223-D: function "sprintf" declared implicitly
sprintf(str,"FPS:%d",fps);
MYDEIVERS\mymain.c: 5 warnings, 0 errors
MYDEIVERS\mymain.c(188): warning: #188-D: enumerated type mixed with another type
MUTE(1);//é™éŸ³
MYDEIVERS\mymain.c(206): warning: #223-D: function "sprintf" declared implicitly
sprintf(str,"BUTTON:%d",B1.code);
MYDEIVERS\mymain.c(262): warning: #111-D: statement is unreachable
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
MYDEIVERS\mymain.c(264): warning: #1-D: last line of file ends without a newline
}
MYDEIVERS\mymain.c: 7 warnings, 0 errors
linking...
Program Size: Code=9140 RO-data=3712 RW-data=28 ZI-data=3836
Program Size: Code=9508 RO-data=3712 RW-data=52 ZI-data=3876
FromELF: creating hex file...
"f103c8t6_KEIL\f103c8t6_KEIL.axf" - 0 Error(s), 5 Warning(s).
"f103c8t6_KEIL\f103c8t6_KEIL.axf" - 0 Error(s), 7 Warning(s).
<h2>Software Packages used:</h2>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -23,6 +23,7 @@
"f103c8t6_keil\oled.o"
"f103c8t6_keil\fonts.o"
"f103c8t6_keil\buzzer.o"
"f103c8t6_keil\encode.o"
--strict --scatter "f103c8t6_KEIL\f103c8t6_KEIL.sct"
--summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols
--info sizes --info totals --info unused --info veneers
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+21 -5
View File
@@ -17,10 +17,12 @@ Mcu.Pin1=PC15-OSC32_OUT
Mcu.Pin10=PA13
Mcu.Pin11=PA14
Mcu.Pin12=PB3
Mcu.Pin13=PB6
Mcu.Pin14=PB7
Mcu.Pin15=VP_SYS_VS_Systick
Mcu.Pin16=VP_TIM2_VS_ClockSourceINT
Mcu.Pin13=PB4
Mcu.Pin14=PB5
Mcu.Pin15=PB6
Mcu.Pin16=PB7
Mcu.Pin17=VP_SYS_VS_Systick
Mcu.Pin18=VP_TIM2_VS_ClockSourceINT
Mcu.Pin2=PD0-OSC_IN
Mcu.Pin3=PD1-OSC_OUT
Mcu.Pin4=PA2
@@ -29,7 +31,7 @@ Mcu.Pin6=PB0
Mcu.Pin7=PB1
Mcu.Pin8=PB12
Mcu.Pin9=PB15
Mcu.PinsNb=17
Mcu.PinsNb=19
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F103C8Tx
@@ -37,6 +39,7 @@ MxCube.Version=6.5.0
MxDb.Version=DB.6.0.50
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
NVIC.EXTI4_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
@@ -91,6 +94,17 @@ PB3.GPIO_Label=en_c
PB3.GPIO_PuPd=GPIO_PULLUP
PB3.Locked=true
PB3.Signal=GPIO_Input
PB4.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
PB4.GPIO_Label=en_a
PB4.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING
PB4.GPIO_PuPd=GPIO_PULLUP
PB4.Locked=true
PB4.Signal=GPXTI4
PB5.GPIOParameters=GPIO_PuPd,GPIO_Label
PB5.GPIO_Label=en_b
PB5.GPIO_PuPd=GPIO_PULLUP
PB5.Locked=true
PB5.Signal=GPIO_Input
PB6.Mode=I2C
PB6.Signal=I2C1_SCL
PB7.Mode=I2C
@@ -153,6 +167,8 @@ RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.TimSysFreq_Value=72000000
RCC.USBFreq_Value=72000000
RCC.VCOOutput2Freq_Value=8000000
SH.GPXTI4.0=GPIO_EXTI4
SH.GPXTI4.ConfNb=1
SH.S_TIM2_CH3.0=TIM2_CH3,PWM Generation3 CH3
SH.S_TIM2_CH3.ConfNb=1
TIM2.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3