1、串口1接收到数据可以通过串口6上传

2、串口6上一次初始化存在问题,
3、串口2和串口3不能接收到数据
4、映射到串口的打印信息,目前不能打印,死循环到发送数据函数
main
shuo zheng 2026-02-10 01:46:09 +08:00
parent 962b25d6c6
commit e2acf033d7
10 changed files with 466 additions and 482 deletions

Binary file not shown.

View File

@ -28,9 +28,8 @@ Project File Date: 02/09/2026
*** Using Compiler 'V5.06 update 4 (build 422)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' *** Using Compiler 'V5.06 update 4 (build 422)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'USART' Build target 'USART'
compiling main.c... compiling main.c...
compiling usart.c...
linking... linking...
Program Size: Code=6056 RO-data=424 RW-data=112 ZI-data=1632 Program Size: Code=5568 RO-data=424 RW-data=112 ZI-data=1632
FromELF: creating hex file... FromELF: creating hex file...
"..\OBJ\USART.axf" - 0 Error(s), 0 Warning(s). "..\OBJ\USART.axf" - 0 Error(s), 0 Warning(s).

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
Dependencies for Project 'USART', Target 'USART': (DO NOT MODIFY !) Dependencies for Project 'USART', Target 'USART': (DO NOT MODIFY !)
CompilerVersion: 5060422::V5.06 update 4 (build 422)::ARMCC CompilerVersion: 5060422::V5.06 update 4 (build 422)::ARMCC
F (.\main.c)(0x698A193F)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ..\CORE -I ..\SYSTEM\delay -I ..\SYSTEM\sys -I ..\SYSTEM\usart -I ..\FWLIB\STM32F4xx_StdPeriph_Driver\inc -I ..\USER -I ..\HARDWARE\LED -I ..\HARDWARE\BEEP -I ..\HARDWARE\KEY -I ..\FWLIB\inc -I ..\HARDWARE -IC:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION="538" -DSTM32F407xx -DSTM32F40_41xxx -DUSE_STDPERIPH_DRIVER -o ..\obj\main.o --omf_browse ..\obj\main.crf --depend ..\obj\main.d) F (.\main.c)(0x698A1C4C)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ..\CORE -I ..\SYSTEM\delay -I ..\SYSTEM\sys -I ..\SYSTEM\usart -I ..\FWLIB\STM32F4xx_StdPeriph_Driver\inc -I ..\USER -I ..\HARDWARE\LED -I ..\HARDWARE\BEEP -I ..\HARDWARE\KEY -I ..\FWLIB\inc -I ..\HARDWARE -IC:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION="538" -DSTM32F407xx -DSTM32F40_41xxx -DUSE_STDPERIPH_DRIVER -o ..\obj\main.o --omf_browse ..\obj\main.crf --depend ..\obj\main.d)
I (..\SYSTEM\sys\sys.h)(0x6989FB0A) I (..\SYSTEM\sys\sys.h)(0x6989FB0A)
I (..\USER\stm32f4xx.h)(0x6989FB0A) I (..\USER\stm32f4xx.h)(0x6989FB0A)
I (..\CORE\core_cm4.h)(0x6989FB0A) I (..\CORE\core_cm4.h)(0x6989FB0A)
@ -450,7 +450,7 @@ I (..\FWLIB\inc\stm32f4xx_can.h)(0x6989FB0A)
I (..\FWLIB\inc\stm32f4xx_dac.h)(0x6989FB0A) I (..\FWLIB\inc\stm32f4xx_dac.h)(0x6989FB0A)
I (..\FWLIB\inc\stm32f4xx_dcmi.h)(0x6989FB0A) I (..\FWLIB\inc\stm32f4xx_dcmi.h)(0x6989FB0A)
I (..\FWLIB\inc\stm32f4xx_fsmc.h)(0x6989FB0A) I (..\FWLIB\inc\stm32f4xx_fsmc.h)(0x6989FB0A)
F (..\SYSTEM\usart\usart.c)(0x698A0E40)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ..\CORE -I ..\SYSTEM\delay -I ..\SYSTEM\sys -I ..\SYSTEM\usart -I ..\FWLIB\STM32F4xx_StdPeriph_Driver\inc -I ..\USER -I ..\HARDWARE\LED -I ..\HARDWARE\BEEP -I ..\HARDWARE\KEY -I ..\FWLIB\inc -I ..\HARDWARE -IC:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION="538" -DSTM32F407xx -DSTM32F40_41xxx -DUSE_STDPERIPH_DRIVER -o ..\obj\usart.o --omf_browse ..\obj\usart.crf --depend ..\obj\usart.d) F (..\SYSTEM\usart\usart.c)(0x698A1BA0)(--c99 -c --cpu Cortex-M4.fp.sp -g -W -O0 --apcs=interwork --split_sections -I ..\CORE -I ..\SYSTEM\delay -I ..\SYSTEM\sys -I ..\SYSTEM\usart -I ..\FWLIB\STM32F4xx_StdPeriph_Driver\inc -I ..\USER -I ..\HARDWARE\LED -I ..\HARDWARE\BEEP -I ..\HARDWARE\KEY -I ..\FWLIB\inc -I ..\HARDWARE -IC:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION="538" -DSTM32F407xx -DSTM32F40_41xxx -DUSE_STDPERIPH_DRIVER -o ..\obj\usart.o --omf_browse ..\obj\usart.crf --depend ..\obj\usart.d)
I (..\SYSTEM\sys\sys.h)(0x6989FB0A) I (..\SYSTEM\sys\sys.h)(0x6989FB0A)
I (..\USER\stm32f4xx.h)(0x6989FB0A) I (..\USER\stm32f4xx.h)(0x6989FB0A)
I (..\CORE\core_cm4.h)(0x6989FB0A) I (..\CORE\core_cm4.h)(0x6989FB0A)

Binary file not shown.

Binary file not shown.

View File

@ -176,7 +176,7 @@ void USART1_IRQHandler(void) //
uart1_data =USART_ReceiveData(USART1); //读取接收到的数据 uart1_data =USART_ReceiveData(USART1); //读取接收到的数据
g_rx1_buffer[0] = uart1_data; g_rx1_buffer[0] = uart1_data;
Uart6_Send_data(g_rx1_buffer,1); //Uart6_Send_data(g_rx1_buffer,1);
if ( g_usart1_rx_sta == 0 && g_rx1_buffer[0] == 0xBB ) if ( g_usart1_rx_sta == 0 && g_rx1_buffer[0] == 0xBB )
{ {
g_usart1_rx_buf[0] = g_rx1_buffer[0]; g_usart1_rx_buf[0] = g_rx1_buffer[0];

File diff suppressed because one or more lines are too long

View File

@ -148,7 +148,40 @@
<Name>-U5&amp;17B511B3&amp;0&amp;1 -O206 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F407ZETx$CMSIS\Flash\STM32F4xx_512.FLM)</Name> <Name>-U5&amp;17B511B3&amp;0&amp;1 -O206 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F407ZETx$CMSIS\Flash\STM32F4xx_512.FLM)</Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>257</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134221026</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\SYSTEM\usart\usart.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\USART\../SYSTEM/usart/usart.c\257</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>339</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134221190</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\SYSTEM\usart\usart.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\USART\../SYSTEM/usart/usart.c\339</Expression>
</Bp>
</Breakpoint>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>
</Tracepoint> </Tracepoint>

View File

@ -203,6 +203,7 @@ int main(void)
uart1_init(115200); //串口1初始化波特率为115200 手指左 uart1_init(115200); //串口1初始化波特率为115200 手指左
uart2_init(115200); //串口1初始化波特率为115200 手指中 uart2_init(115200); //串口1初始化波特率为115200 手指中
uart3_init(115200); //串口1初始化波特率为115200 手指右 uart3_init(115200); //串口1初始化波特率为115200 手指右
uart4_init(115200); //串口1初始化波特率为115200 用于信息打印
uart6_init(115200); //串口6初始化波特率为115200 上传到slide uart6_init(115200); //串口6初始化波特率为115200 上传到slide
gpio_Init(); //初始化gpio gpio_Init(); //初始化gpio
motor_spi1_init(); motor_spi1_init();
@ -226,33 +227,33 @@ int main(void)
memcpy(frame_updata,g_usart1_rx_buf,6 ); memcpy(frame_updata,g_usart1_rx_buf,6 );
memset(g_usart1_rx_buf, 0x0, 6); memset(g_usart1_rx_buf, 0x0, 6);
g_rx1_buffer[0] = 0x0; g_rx1_buffer[0] = 0x0;
Uart1_Send_data(frame_updata,6); Uart6_Send_data(frame_updata,6);
} }
//------------------------------------------------- //-------------------------------------------------
if(USART_RX_STA&0x8000) // if(USART_RX_STA&0x8000)
{ // {
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度 // len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
printf("\r\n您发送的消息为:\r\n"); // printf("\r\n您发送的消息为:\r\n");
for(t=0;t<len;t++) // for(t=0;t<len;t++)
{ // {
USART_SendData(USART1, USART_RX_BUF[t]); //向串口1发送数据 // USART_SendData(USART1, USART_RX_BUF[t]); //向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束 // while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
} // }
printf("\r\n\r\n");//插入换行 // printf("\r\n\r\n");//插入换行
USART_RX_STA=0; // USART_RX_STA=0;
}else // }else
{ // {
times++; // times++;
if(times%5000==0) // if(times%5000==0)
{ // {
printf("\r\nALIENTEK 探索者STM32F407开发板 串口实验\r\n"); // printf("\r\nALIENTEK 探索者STM32F407开发板 串口实验\r\n");
printf("正点原子@ALIENTEK\r\n\r\n\r\n"); // printf("正点原子@ALIENTEK\r\n\r\n\r\n");
} // }
if(times%200==0)printf("请输入数据,以回车键结束\r\n"); // if(times%200==0)printf("请输入数据,以回车键结束\r\n");
if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行. // if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
delay_ms(10); // delay_ms(10);
} // }
} }
} }