歷程中是UART1,但改為UART0后為什么就是不好使,是哪里還需要配置嗎,引腳什么的都改了,線也沒接錯(cuò),有沒有大哥救救孩子 - -?
#include "CH58x_common.h"
uint8_t TxBuff[] = "This is a tx exam\r\n";
uint8_t RxBuff[100];
uint8_t trigB;
/*********************************************************************
?* @fn? ? ? main
?*
?* @brief? ?主函數(shù)
?*
?* @return? none
?*/
int main()
{
? ? uint8_t len;
? ? SetSysClock(CLK_SOURCE_PLL_60MHz);
? ? /* 配置串口1:先配置IO口模式,再配置串口 */
? ? GPIOB_SetBits(bTXD0);
? ? GPIOB_ModeCfg(bRXD0, GPIO_ModeIN_PU);? ? ? // RXD-配置上拉輸入
? ? GPIOB_ModeCfg(bTXD0, GPIO_ModeOut_PP_5mA); // TXD-配置推挽輸出,注意先讓IO口輸出高電平
? ? UART0_DefInit();
#if 1 // 測(cè)試串口發(fā)送字符串
? ? UART0_SendString(TxBuff, sizeof(TxBuff));
#endif
#if 0 // 查詢方式:接收數(shù)據(jù)后發(fā)送出去
? ? while(1)
? ? {
? ? ? ? len = UART0_RecvString(RxBuff);
? ? ? ? if(len)
? ? ? ? {
? ? ? ? ? ? UART0_SendString(RxBuff, len);
? ? ? ? }
? ? }
#endif
#if 1 // 中斷方式:接收數(shù)據(jù)后發(fā)送出去
? ? UART0_ByteTrigCfg(UART_1BYTE_TRIG);
? ? trigB = 1;
? ? UART0_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT);
? ? PFIC_EnableIRQ(UART0_IRQn);
#endif
? ? while(1);
}
/*********************************************************************
?* @fn? ? ? UART1_IRQHandler
?*
?* @brief? ?UART1中斷函數(shù)
?*
?* @return? none
?*/
__INTERRUPT
__HIGH_CODE
void UART0_IRQHandler(void)
{
? ? volatile uint8_t i;
? ? switch (UART0_GetITFlag())
? ? {
? ? ? ? case UART_II_LINE_STAT: // 線路狀態(tài)錯(cuò)誤
? ? ? ? {
? ? ? ? ? ? UART0_GetLinSTA();
? ? ? ? ? ? break;
? ? ? ? }
? ? ? ? case UART_II_RECV_RDY: // 數(shù)據(jù)達(dá)到設(shè)置觸發(fā)點(diǎn)
? ? ? ? ? ? for(i = 0; i != trigB; i++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? RxBuff[i] = UART0_RecvByte();
? ? ? ? ? ? ? ? UART0_SendByte(RxBuff[i]);
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? case UART_II_RECV_TOUT: // 接收超時(shí),暫時(shí)一幀數(shù)據(jù)接收完成
? ? ? ? ? ? i = UART0_RecvString(RxBuff);
? ? ? ? ? ? UART0_SendString(RxBuff, i);
? ? ? ? ? ? break;
? ? ? ? case UART_II_THR_EMPTY: // 發(fā)送緩存區(qū)空,可繼續(xù)發(fā)送
? ? ? ? ? ? break;
? ? ? ? case UART_II_MODEM_CHG: // 只支持串口0
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? break;
? ? }
}
真就什么都沒改 - -?
你好,將這里的debug改成0。
您好,我試了下,還是不行
將你的代碼拷貝并修改debug=0,可以進(jìn)行收發(fā)。
你可以檢查一下串口硬件是否接線良好,檢查一下串口0的c文件是否include。
如果收發(fā)還是有問題,請(qǐng)發(fā)送郵件至郵箱lpc@wch.cn,我們這里進(jìn)行查看。