单片机/MCU论坛
登录
直播中
马腾
8年用户
7经验值
擅长:控制/MCU
私信
关注
[问答]
LPC1766串口发送后接收乱码问题
开启该帖子的消息推送
串口通信
LPC
最近使用LPC1766芯片遇到一个问题,用硬件
仿真
看串口发送前数据是正确的,但是用TTL-USB发送到电脑后接收乱码。使用基础串口发送代码也是这个问题。
使用12M外部晶振。各位大神有知道原因的吗?万分感谢
主程序
int main(void)
{
uint32_t i,j, k=0;
SystemInit();
UART0_Init(9600);
UART0_SendString("hello world");
Delay(250);
}
串口配置
#define FOSC 12000000
#define FCCLK (FOSC * 8)
#define FCCO (FCCLK * 3)
#define FPCLK (FCCLK / 4)
void UART0_Init (uint32_t baudrate)
{
uint16_t usFdiv;
/* UART0 */
LPC_PINCON->PINSEL0 |= (1 << 4);
LPC_PINCON->PINSEL0 |= (1 << 6);
LPC_UART0->LCR = 0x83;
usFdiv = (FPCLK / 16) / baudrate;
LPC_UART0->DLM = usFdiv / 256;
LPC_UART0->DLL = usFdiv % 256;
LPC_UART0->LCR = 0x03;
LPC_UART0->FCR = 0x06;
}
系统初始化代码
#if (CLOCK_SETUP) /* Clock Setup */
LPC_SC->SCS = SCS_Val;
if (SCS_Val & (1 << 5)) { /* If Main Oscillator is enabled */
while ((LPC_SC->SCS & (1<<6)) == 0);/* Wait for Oscillator to be ready */
}
LPC_SC->CCLKCFG = CCLKCFG_Val; /* Setup Clock Divider */
#if (PLL0_SETUP)
LPC_SC->CLKSRCSEL = CLKSRCSEL_Val; /* Select Clock Source for PLL0 */
LPC_SC->PLL0CFG = PLL0CFG_Val; /* configure PLL0 */
LPC_SC->PLL0FEED = 0xAA;
LPC_SC->PLL0FEED = 0x55;
LPC_SC->PLL0CON = 0x01; /* PLL0 Enable */
LPC_SC->PLL0FEED = 0xAA;
LPC_SC->PLL0FEED = 0x55;
while (!(LPC_SC->PLL0STAT & (1<<26)));/* Wait for PLOCK0 */
LPC_SC->PLL0CON = 0x03; /* PLL0 Enable & Connect */
LPC_SC->PLL0FEED = 0xAA;
LPC_SC->PLL0FEED = 0x55;
while (!(LPC_SC->PLL0STAT & ((1<<25) | (1<<24))));/* Wait for PLLC0_STAT & PLLE0_STAT */
#endif
#if (PLL1_SETUP)
LPC_SC->PLL1CFG = PLL1CFG_Val;
LPC_SC->PLL1FEED = 0xAA;
LPC_SC->PLL1FEED = 0x55;
LPC_SC->PLL1CON = 0x01; /* PLL1 Enable */
LPC_SC->PLL1FEED = 0xAA;
LPC_SC->PLL1FEED = 0x55;
while (!(LPC_SC->PLL1STAT & (1<<10)));/* Wait for PLOCK1 */
LPC_SC->PLL1CON = 0x03; /* PLL1 Enable & Connect */
LPC_SC->PLL1FEED = 0xAA;
LPC_SC->PLL1FEED = 0x55;
while (!(LPC_SC->PLL1STAT & ((1<< 9) | (1<< 8))));/* Wait for PLLC1_STAT & PLLE1_STAT */
#else
LPC_SC->USBCLKCFG = USBCLKCFG_Val; /* Setup USB Clock Divider */
#endif
LPC_SC->PCLKSEL0 = PCLKSEL0_Val; /* Peripheral Clock Selec
ti
on */
LPC_SC->PCLKSEL1 = PCLKSEL1_Val;
LPC_SC->PCONP = PCONP_Val; /* Power Control for Peripherals */
LPC_SC->CLKOUTCFG = CLKOUTCFG_Val; /* Clock Output Configuration */
#endif
#if (FLASH_SETUP == 1) /* Flash Accelerator Setup */
LPC_SC->FLASHCFG = FLASHCFG_Val;
#endif
}
回帖
(1)
马腾
2019-3-16 17:31:45
有人吗?跪求大神。
更新一下,使用单字符发送接收端会变,如果发16进制0x32接收端会接收到其他数
有人吗?跪求大神。
更新一下,使用单字符发送接收端会变,如果发16进制0x32接收端会接收到其他数
2
举报
阿信509:
你的串口是什么口呀?电脑那边一般都是232的
马腾
回复
阿信509:
确实是这个原因,板卡上有MAX232芯片,转成了RS232信号了。多谢大神啦!!
更多回帖
rotate(-90deg);
回复
相关问答
串口通信
LPC
请问有没有可以替换
LPC1766
的IC推荐?
2018-06-07
3234
N76E003
串口
接收字符串
乱码
是什么原因?
2023-06-14
783
STM32
串口
发送
字符
串
出现
乱码
怎么解决?
2022-02-18
2635
STM32
串口
发送
字符
串
出现
乱码
如何解决?
2021-12-03
1881
怎样去解决STM32F407
串口
发送
数据
乱码
的问题
2021-12-06
2423
如何解决stm32
串口
输出为
乱码
或不能
接收
数据的问题?
2021-12-09
2423
如何解决STM32
串口
通信
乱码
问题?
2021-12-09
1931
请问STM32
串口
通信
乱码
怎么解决?
2021-12-06
1637
stm32
串口
接收
到
乱码
的原因?如何解决?
2021-12-09
3878
怎样去解决STM32
串口
打印printf
发送
中文
乱码
的问题
2021-12-02
2348
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分