在线时间1312 小时
UID3124330
注册时间2015-11-26
NXP金币2830
TA的每日心情 | 开心 2019-3-5 08:47 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
金牌会员
 
- 积分
- 9004
- 最后登录
- 2025-7-20
|
串口通讯比较简单,以前使用过,现在重新测试写一写。查看数据手册,配置功率,引脚,初始化,中断等基本配置就是这样。串口在调试项目涉及到数据的时候使用的比较多。该款芯片有四个串口,从使用手册上看,UART1被分开了,其基本功能都是一样的,只是增加了Modem接口和RS486模式,可以参照使用手册,选择自己想使用的功能。本次使用UART0,方便。
主要参考代码:
- void UART_Configuration(void)
- {
- // UART Configuration structure variable
- UART_CFG_Type UARTConfigStruct;
- // UART FIFO configuration Struct variable
- UART_FIFO_CFG_Type UARTFIFOConfigStruct;
-
- UART_ConfigStructInit (&UARTConfigStruct );
- UART_Init(LPC_UART0,&UARTConfigStruct);
- /* Initialize FIFOConfigStruct to default state:
- * - FIFO_DMAMode = DISABLE
- * - FIFO_Level = UART_FIFO_TRGLEV0
- * - FIFO_ResetRxBuf = ENABLE
- * - FIFO_ResetTxBuf = ENABLE
- * - FIFO_State = ENABLE
- */
- UART_FIFOConfigStructInit(&UARTFIFOConfigStruct);
- // Initialize FIFO for UART0 peripheral
- UART_FIFOConfig(LPC_UART0, &UARTFIFOConfigStruct);
- // Enable UART Transmit
- UART_TxCmd(LPC_UART0, ENABLE);
-
- /* Enable UART Rx interrupt */
- UART_IntConfig(LPC_UART0, UART_INTCFG_RBR, ENABLE);
-
- NVIC_SetPriority(UART0_IRQn, ((0x01<<3)|0x01));
- /* Enable Interrupt for UART0 channel */
- NVIC_EnableIRQ(UART0_IRQn);
- }
- void UART0_IRQHandler(void)
- {
- // UART0_StdIntHandler();
- NVIC_ClearPendingIRQ (UART0_IRQn );
- // Rbuf = UART_ReceiveData (LPC_UART0);
- UART_Receive(LPC_UART0,Rbuf,2,BLOCKING);
-
- }
- void GPIO_Configuration(void)
- {
- PINSEL_CFG_Type PinCfg;
-
- PinCfg .Funcnum =1;
- PinCfg .OpenDrain =0;
- PinCfg .Pinmode =0;
- PinCfg .Pinnum =2;
- PinCfg .Portnum =0;
- PINSEL_ConfigPin (&PinCfg );
- PinCfg .Pinnum =3;
- PINSEL_ConfigPin (&PinCfg );
- }
复制代码
原理图及连接图如图1:
发送和接收如图2和图3:
|
|