打印
[STM32F4]

STM32的USART DR不能写入发送数据

[复制链接]
411|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Treasure101|  楼主 | 2025-3-1 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Treasure101 于 2025-3-1 10:46 编辑

使用STM32f4,配置了USART实现最简单的数据收发,PC端的虚拟串口软件不能接收到到任何数据。

我检查了程序和电路,使用Keil仿真是发现USART_SendData函数(包括USART->DR地址)对DR寄存器没有任何操作!
DR一直保持为0x0000,发送的数据没写入DR。、
以下是程序
int main (void) {
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); // GPIOA Clock Enable, AHB Bus, AHBENR  
RegisterRCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); // GPIOB Clock Enable, AHB Bus, AHBENR
RegisterRCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE); // GPIOC Clock Enable, AHB Bus, AHBENR

RegisterRCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE); // GPIOD Clock Enable, AHB Bus, AHBENR
RegisterRCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE); // USART3 Clock Enable, APB1 Bus, APB1ENR
RegisterRCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); // I2C1 Clock Enable, APB1 Bus, APB1ENR
RegisterRCC_APB1PeriphClockCmd(RCC_APB1Periph_LCD, ENABLE); // LCD Clock Enable, APB1 Bus, APB1ENR
  
RegisterPWR_RTCAccessCmd(ENABLE);
RCC_LSICmd(ENABLE);Delay(100);
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
RCC_RTCCLKCmd(ENABLE);/* PC10 for USART3 TX PC11 for USART3 RX */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init( GPIOC, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource10,GPIO_AF_USART3);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource11,GPIO_AF_USART3); /* USART3_InitStructure configuration */
USART3_InitStructure.USART_BaudRate = 9600;
USART3_InitStructure.USART_WordLength = USART_WordLength_8b;
USART3_InitStructure.USART_StopBits = USART_StopBits_1;
USART3_InitStructure.USART_Parity = USART_Parity_No ;
USART3_InitStructure.USART_Mode = USART_Mode_Tx;
USART3_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_DeInit(USART3);
USART_Init(USART3, &USART3_InitStructure);
USART_Cmd(USART3, ENABLE);
while (1)
{
// Loop foreverUSART_SendData(USART3, 0x00FF);
Delay(500);};
}


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

15

帖子

0

粉丝