
include "usart.h"int fputc(int ch, FILE *f)
{
Serial_SendByte(ch); void USART2_Init(u32 bound) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;//TX GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;//RX GPIO_Init(GPIOA,&GPIO_InitStructure); USART_InitStructure.USART_BaudRate = bound; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART2, &USART_InitStructure); USART_Cmd(USART2, ENABLE); } void Serial_SendByte(uint8_t Byte) { USART_SendData(USART2, Byte); while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET); } 同样的代码换成USART1就可以正常使用,请问是什么原因 |
STM32F103C8T6单片机通过PA4、PA5、PB10、PB11接口与单个74HC595D连接,然后通过CAN发报0x87,74HC595D输出脚Q1和Q5是常高电平,但连接多个74HC595D时,Q1和Q5波形不正常,为什么会出现方波?
为什么STM32G431的串口用不了2.5M的波特率
STM32L431内部温度AD值不随温度变化
STM32L设置CAN一直卡在HAL_CAN_START(),上拉两个引脚依然卡在这里
STM32L031G6U6芯片,使用Flash模拟EEPROM功能,同数据写入不同地址,读取对比不一样,这是为什么?
请教专家,STM8L052的GPIO口做输入检测,为什么不能反应管脚实际电压变化?
ST的大大们您们好,我有一块利尔达STM32MP257F-DK开发板,请问我怎样完全找到完整能运行的STM32MP257的裸机程序
各位大佬们多提提宝贵建议定位根本原因,跪谢。STM32L452 在未知情况下打开了读保护RDP?MCU无法运行,只有解除读保护后重新烧录固件
STM32H743 LAN8720 CUBEMX配置lwIP无法ping通,分配pbuf失败
stm32f746g-disco开发板的串口通讯连接方式
检查UART2所用到GPIO的时钟是否开启;
检查UART2的外设时钟开启没有,别配错了,UART2挂在APB1总线上;
检查UART2的波特率配置跟串口终端配置的是否一致,UART1可以,UART2的参数应该调整下,它的外设时钟跟UART1刚好差一倍;
检查是否用涉及管脚重映射的操作,记得使能AFIO时钟,HAL库是这样的: __HAL_RCC_AFIO_CLK_ENABLE();
若使用标准库,操作是这样的:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);