ch32v307串口4讀取GPS數(shù)據(jù)亂碼

ch32v307使用串口4中斷方式讀取GPS數(shù)據(jù)亂碼。

聲明:

//void?USART4_IRQHandler(void)?__attribute__((interrupt()));?//?串口4不工作
void?UART4_IRQHandler(void)?__attribute__((interrupt("WCH-Interrupt-fast")));

初始化:

void?uart4_init(void)
{
????GPIO_InitTypeDef??GPIO_InitStructure?=?{0};
????USART_InitTypeDef?USART_InitStructure?=?{0};
????NVIC_InitTypeDef??NVIC_InitStructure?=?{0};

????RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB?|?RCC_APB2Periph_AFIO,?ENABLE);
????RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,?ENABLE);

????USART_DeInit(UART4);
????/*?UART4?TX-->B.1??RX-->B.0?*/
????GPIO_PinRemapConfig(GPIO_PartialRemap_USART4,?ENABLE);

????GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_1;
????GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
????GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP;
????GPIO_Init(GPIOB,?&GPIO_InitStructure);
????GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_0;
????GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING;
????GPIO_Init(GPIOB,?&GPIO_InitStructure);

????USART_InitStructure.USART_BaudRate?=?115200;
????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_Tx?|?USART_Mode_Rx;

????USART_Init(UART4,?&USART_InitStructure);

????USART_ITConfig(UART4,?USART_IT_RXNE,?ENABLE);

????NVIC_InitStructure.NVIC_IRQChannel?=?UART4_IRQn;
????NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority?=?2;?//?搶占優(yōu)先級
????NVIC_InitStructure.NVIC_IRQChannelSubPriority?=?3;?//?子優(yōu)先級
????NVIC_InitStructure.NVIC_IRQChannelCmd?=?ENABLE;
????NVIC_Init(&NVIC_InitStructure);

????USART_Cmd(UART4,?ENABLE);
}

中斷處理函數(shù):

void?UART4_IRQHandler(void)
{
????//u8?recv_buf;?//?存儲接收的內(nèi)容
????if(USART_GetITStatus(UART4,?USART_IT_RXNE)?!=?RESET)
????{
????????USART_ClearITPendingBit(UART4,?USART_IT_RXNE);?//?清除中斷標(biāo)志

????????u8?recv_buf?=?USART_ReceiveData(UART4);???//?存儲接收內(nèi)容
????????printf("%c(%d)?",?recv_buf,?recv_buf);
????}
}

打印出的GPS數(shù)據(jù):

y(121)??(189)??(221)?=(61)??(157)??(155)??(159)??(167)??(157)?}(125)?g(103)?W(87)?[(91)??(143)??(157)??(171)??(149)??(235)??(183)?w(119)?O(79)??(167)??(155)??(159)??(159)??(167)?c(99)?A(65)?_(95)?c(99)?w(119)??(167)?}(125)??(235)?{(123)?q(113)?}(125)??(159)??(145)??(145)??(153)??(147)??(167)??(167)??(167)??(159)??(167)?e(101)??(167)??(167)??(147)??(229)??(183)?w(119)?e(101)??(167)??(151)??(157)??(163)??(141)??(167)??(167)??(167)??(167)??(155)??(159)??(155)??(167)??(157)?u(117)?c(99)?S(83)??(151)??(229)?(0)??(219)??(221)??(197)??(157)??(159)??(145)??(145)??(143)??(147)??(167)??(167)??(167)??(159)??(167)?e(101)??(167)??(167)??(147)??(229)??(183)?w(119)?e(101)??(159)??(151)??(157)??(163)??(141)??(167)


已確定GPS波特率為115200,串口4的PB0和PB1引腳初始化時交換也為相同亂碼。

目前看來串口4一直沒有正常工作。

您好,郵件已回復(fù)你,打印異常注意加換行符試一下


感謝回復(fù)!

實(shí)際測試發(fā)現(xiàn)為硬件問題,并非串口4問題。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频