
《年中视频学习心得》+我在年中学习STM32心得
多DMA数据流问题
电磁炉
boost电路程序控制
stm32cubemx在联网时无法启动,断网时可正常启动。
STM32U575VGT6在cubeMX中没有FATFS中间件,是不支持?还是待开发?现在这块板子使用FATFS只能自己手动移植吗?
STM32F103长时间运行,串口发送失败
金币用来兑换 积分是干啥的
关于STM32Cubemx 6.15版本生成工程的文件编码的问题
STM32G474 BOOST电路双环PID的用法
建议将此引脚悬空,测量输出方波,避免外部电路影响。
如不能输出,那么简单测量一下该引脚悬空状态下对GND 和 VDD的阻抗,粗略判断一下是否有损坏。
有条件的化,再换一片对比一下。
/* UART5 init function */
void MX_UART5_Init(void)
{
/* USER CODE BEGIN UART5_Init 0 */
/* USER CODE END UART5_Init 0 */
LL_USART_InitTypeDef USART_InitStruct = {0};
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
/* Peripheral clock enable */
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_UART5);
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOC);
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOD);
/**UART5 GPIO Configuration
PC12 ------> UART5_TX
PD2 ------> UART5_RX
*/
GPIO_InitStruct.Pin = LL_GPIO_PIN_12;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
LL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_2;
GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING;
LL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* UART5 interrupt Init */
NVIC_SetPriority(UART5_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));
NVIC_EnableIRQ(UART5_IRQn);
/* USER CODE BEGIN UART5_Init 1 */
/* USER CODE END UART5_Init 1 */
USART_InitStruct.BaudRate = 115200;
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
USART_InitStruct.Parity = LL_USART_PARITY_NONE;
USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;
USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
LL_USART_Init(UART5, &USART_InitStruct);
LL_USART_ConfigAsyncMode(UART5);
LL_USART_Enable(UART5);
/* USER CODE BEGIN UART5_Init 2 */
LL_USART_EnableIT_RXNE(UART5);
LL_USART_EnableIT_IDLE(UART5);
/* USER CODE END UART5_Init 2 */
}
void UART5_SendDatas(uint8_t *data, uint8_t len)
{
uint16_t i = 0;
for(i = 0; i < len; i++)
{
while(LL_USART_IsActiveFlag_TC(UART5)!= 1);
LL_USART_TransmitData8(UART5, data[i]);
}
}
uint16_t UART5_RxIndex = 0;
uint16_t UART5_RxLen = 0;
uint8_t UART5_RxBuf[UART5_RxMax] = {0};
void MY_UART5_IRQHandler(void)
{
uint8_t temp = 0;
if(LL_USART_IsActiveFlag_IDLE(UART5))
{
LL_USART_ClearFlag_IDLE(UART5);
UART5_RxLen = UART5_RxIndex;
UART5_RxIndex = 0;
}
if(LL_USART_IsActiveFlag_RXNE(UART5))
{
LL_USART_ClearFlag_RXNE(UART5);
temp = LL_USART_ReceiveData8(UART5);
UART5_RxBuf[UART5_RxIndex] = temp;
UART5_RxIndex ++;
}
}
PD2只有0.1v左右,几乎没有。
你尝试将UART5映射到其他GPIO上试试,
1、有可能这个PD2打坏了,内部上下拉有问题
2、有可能UART5 RX那部分,打坏了
3、也有可能以上两种情况都有
板子上的PD2是直接引出来的,断电直接测了一下,对VDD的电阻1.8KΩ,对GND的电阻只有2.8Ω,其他的引脚对VDD和GDN都是MΩ级别的。
应该是引脚坏掉了。
测了一下,是引脚坏掉了
会的 单独坏掉IO 或者是出现IO正常AD功能用不了了,之前出现过问题