牛卧堂MCU技术交流
标题:
nuc240 uart1 可以傳送卻無法接收
[打印本页]
作者:
匿名
时间:
2019-10-24 11:19
标题:
nuc240 uart1 可以傳送卻無法接收
我是個初學者, 學範例改程式, 由 PC 端用 RS232 通訊, 根據測試 NUC240 傳送沒問題,
卻無法收到訊息, 不知為何, 懇請各方前輩高手不吝幫忙, 謝謝:
以下是我改的程式:
#include <stdio.h>
#include "NUC230_240.h"
#define PLLCON_SETTING SYSCLK_PLLCON_50MHz_XTAL
#define PLL_CLOCK 50000000
void UART1_Init()
{
/* Reset IP */
SYS_ResetModule(UART1_RST);
/* Configure UART1 and set UART1 Baudrate */
UART_Open(UART1, 115200);
}
int32_t main(void)
{
unsigned char gChar;
uint32_t u32Count, u32delayno;
UART1_Init();
u32delayno = 0;
while(uart->FSR & UART_FSR_RX_EMPTY_Msk) {
u32delayno++;
if(u32delayno >= 0x40000000)
continue;
}
gChar = uart->RBR; //程式無法到此段落, 取得 PC 端傳來的字元 !
}
作者:
匿名
时间:
2019-10-24 14:24
多功能引脚你配置了吗,需要把GPIO配置成UART1
作者:
匿名
时间:
2019-10-24 15:32
打开官网bsp包 里面有接收的例程 .可以认真看下
作者:
匿名
时间:
2019-10-30 19:13
我在 void UART1_Init() 裡面加上 設定, 經過測試還是無法接收, 真的很難喔: 程式如下
#include <stdio.h>
#include "NUC230_240.h"
#define PLLCON_SETTING SYSCLK_PLLCON_50MHz_XTAL
#define PLL_CLOCK 50000000
void UART1_Init()
{
CLK->CLKSEL1 = (CLK->CLKSEL1 & ~CLK_CLKSEL1_UART_S_Msk) | CLK_CLKSEL1_UART_S_HIRC;
CLK_EnableModuleClock(UART1_MODULE);
CLK->APBCLK = CLK_APBCLK_UART1_EN_Msk|CLK_APBCLK_UART0_EN_Msk |CLK_APBCLK_TMR1_EN_Msk|CLK_APBCLK_WDT_EN_Msk;//add
SYS->GPB_MFP &= ~(SYS_GPB_MFP_PB4_Msk | SYS_GPB_MFP_PB5_Msk);
SYS->GPB_MFP |= SYS_GPB_MFP_PB4_UART1_RXD | SYS_GPB_MFP_PB5_UART1_TXD;
UART_SetLine_Config(UART1, 9600, UART_WORD_LEN_8, UART_PARITY_EVEN, UART_STOP_BIT_1);
/* Reset IP */
SYS_ResetModule(UART1_RST);
/* Configure UART1 and set UART1 Baudrate */
UART_Open(UART1, 115200);
}
int32_t main(void)
{
unsigned char gChar;
uint32_t u32Count, u32delayno;
UART1_Init();
u32delayno = 0;
while(uart->FSR & UART_FSR_RX_EMPTY_Msk) {
u32delayno++;
if(u32delayno >= 0x40000000)
continue;
}
gChar = uart->RBR; //程式無法到此段落, 取得 PC 端傳來的字元 !
}
作者:
匿名
时间:
2019-10-30 19:14
我在 void UART1_Init() 裡面加上 設定, 經過測試還是無法接收, 真的很難喔: 程式如下
#include <stdio.h>
#include "NUC230_240.h"
#define PLLCON_SETTING SYSCLK_PLLCON_50MHz_XTAL
#define PLL_CLOCK 50000000
void UART1_Init()
{
CLK->CLKSEL1 = (CLK->CLKSEL1 & ~CLK_CLKSEL1_UART_S_Msk) | CLK_CLKSEL1_UART_S_HIRC;
CLK_EnableModuleClock(UART1_MODULE);
CLK->APBCLK = CLK_APBCLK_UART1_EN_Msk|CLK_APBCLK_UART0_EN_Msk |CLK_APBCLK_TMR1_EN_Msk|CLK_APBCLK_WDT_EN_Msk;//add
SYS->GPB_MFP &= ~(SYS_GPB_MFP_PB4_Msk | SYS_GPB_MFP_PB5_Msk);
SYS->GPB_MFP |= SYS_GPB_MFP_PB4_UART1_RXD | SYS_GPB_MFP_PB5_UART1_TXD;
UART_SetLine_Config(UART1, 9600, UART_WORD_LEN_8, UART_PARITY_EVEN, UART_STOP_BIT_1);
/* Reset IP */
SYS_ResetModule(UART1_RST);
/* Configure UART1 and set UART1 Baudrate */
UART_Open(UART1, 9600);
}
int32_t main(void)
{
unsigned char gChar;
uint32_t u32Count, u32delayno;
UART1_Init();
u32delayno = 0;
while(uart->FSR & UART_FSR_RX_EMPTY_Msk) {
u32delayno++;
if(u32delayno >= 0x40000000)
continue;
}
gChar = uart->RBR; //程式無法到此段落, 取得 PC 端傳來的字元 !
}
欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/)
Powered by Discuz! X3.2