哪位大佬能帮忙看看程序下载进去后,芯片的通讯i/o口为啥发送不出数据
void GPIO_init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_StructInit(&GPIO_InitStruct);
/*UART1 P2.5-TX0*/
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIO2, &GPIO_InitStruct);
GPIO_PinAFConfig(GPIO2, GPIO_PinSource_5, AF4_UART); // P2.5 复用成UART1_TX
}
void UART_init(void)
{
UART_InitTypeDef UART_InitStruct;
UART_StructInit(&UART_InitStruct);
UART_InitStruct.BaudRate = 19200; /* 设置波特率19200 */
UART_InitStruct.WordLength = UART_WORDLENGTH_8b ; /* 发送数据长度8位 */
UART_InitStruct.StopBits = UART_STOPBITS_1b; /* 停止位长度1位 */
UART_InitStruct.FirstSend = UART_FIRSTSEND_LSB; /* 先发送LSB */
UART_InitStruct.ParityMode = UART_Parity_NO; /* 无奇偶校验 */
UART_InitStruct.RXD_INV = DISABLE; /* RXD电平正常输出*/
UART_InitStruct.TXD_INV = DISABLE; /* TXD电平正常输出*/
UART_InitStruct.IRQEna = UART_IRQEna_SendOver | UART_IRQEna_RcvOver;/*使能接收和发送完成中断*/
UART_Init(UART1, &UART_InitStruct);
}
u8 UART_Value = 0;
void UART1_IRQHandler(void)
{
if (UART1_IF & UART_IF_SendOver) //发送完成中断
{
UART1_IF = UART_IF_SendOver;
}
if (UART1_IF & UART_IF_RcvOver) //接收完成中断
{
UART1_IF = UART_IF_RcvOver;
UART_Value = UART1->BUFF;
}
}
int main(void)
{
Hardware_init(); /* 硬件初始化 */
while (1)
{
// GPIO_SetBits(GPIO0, GPIO_Pin_10);
// GPIO_ResetBits(GPIO2, GPIO_Pin_5);
UART_SendData(UART1, 0xAA); //发送数据
SoftDelay(0xFFFFFF);
}
} |