
STM32N6570-DK开发板,哪里还有卖的?
STM32H743VIT6 HAL 串口DMA发送掉帧
STM32G474CBT6 串口通信问题
STM32CubeMX生成STM32mp135D的USART1,2,3,6代码初始化是空的
STM8AF62XX+L99PM62GXP LIN通讯的电路原理图有吗?官网提供了一套软件,没找到对应的原理图,请大家指教一下
使用STM32L451CEU6型号的芯片,在用usart(PA9、PA10)进行串口通信时,发送0x55在PC端可以收到正确的数据,但是发送0x80会收到0x00的数据,发送0x01会收到0x7F的数据,串口助手的配置和CubeMX上的配置参数是一样的(都是115200,8N1),请问各位这个是什么原因呀?
STM32H7,0x00000000地址的内容引发hardfault
使用HAL_UARTEx_RxEventCallback实现的uart数据接收不会被清理,一直累加
STM32 Bootloader提问
DMA发送函数只能被调用一次
void MX_USART1_UART_Init(void)
{
LL_USART_InitTypeDef USART_InitStruct = {0};
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
//初始化串口时钟
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1);
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
//RS485发送接收控制IO初始化,输出端口
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
GPIO_InitStruct.Pin = RS485_CTRL_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
LL_GPIO_Init(RS485_CTRL_GPIO_Port, &GPIO_InitStruct);
/***** USART1 GPIO Configuration *******************
PA9 ------> USART1_TX
PA10 ------> USART1_RX
******************************************************/
GPIO_InitStruct.Pin = Usart1_TXD_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
GPIO_InitStruct.Alternate = LL_GPIO_AF_1;
LL_GPIO_Init(Usart1_TXD_GPIO_Port, &GPIO_InitStruct);
GPIO_InitStruct.Pin = Usart1_RXD_Pin;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
GPIO_InitStruct.Alternate = LL_GPIO_AF_1;
LL_GPIO_Init(Usart1_RXD_GPIO_Port, &GPIO_InitStruct);
/* USART1 interrupt Init */
NVIC_SetPriority(USART1_IRQn, 1);
NVIC_EnableIRQ(USART1_IRQn);
USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1;
USART_InitStruct.BaudRate = BAUDRATE;
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_9B; //9位带偶校验;此处设为8B
USART_InitStruct.StopBits = LL_USART_STOPBITS_1; //1位停止位
USART_InitStruct.Parity = LL_USART_PARITY_EVEN; //偶校验;此处设NONE时串口正常
USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;
USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;
LL_USART_Init(USART1, &USART_InitStruct);
LL_USART_SetTXFIFOThreshold(USART1, LL_USART_FIFOTHRESHOLD_1_8);
LL_USART_SetRXFIFOThreshold(USART1, LL_USART_FIFOTHRESHOLD_1_8);
LL_USART_DisableFIFO(USART1);
LL_USART_ConfigAsyncMode(USART1);
LL_USART_Enable(USART1);
LL_USART_EnableIT_RXNE(USART1);
LL_USART_EnableIT_PE(USART1);
/* Polling USART1 initialisation */
while((!(LL_USART_IsActiveFlag_TEACK(USART1))) || (!(LL_USART_IsActiveFlag_REACK(USART1))))
{
}
SetRS485Status(RS485_RECEIVE_DATA_STATUS);
}
void USART1_IRQHandler(void)
{
u8 Datatemp;
if( LL_USART_IsActiveFlag_RXNE(USART1) == RESET ) //未检测到串口中断
return;
Datatemp = LL_USART_ReceiveData8(USART1);
}
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_9B; //9位带偶校验;此处设为8B
USART_InitStruct.Parity = LL_USART_PARITY_EVEN; //偶校验;此处设NONE时串口正常