写一段新唐NUC029LAN单片机串口1发送数据到迪文T5系列串口屏并显示的是代码
时间: 2024-03-02 09:51:05 浏览: 129
好的,以下是NUC029LAN单片机串口1发送数据到迪文T5系列串口屏并显示的代码:
```c
#include <stdio.h>
#include "NUC029LAN.h"
#define PLLCON_SETTING CLK_PLLCON_50MHz_HXT
#define PLL_CLOCK 50000000
#define UART_BAUD_RATE 9600
#define RS485_TX PC12 // 设置RS485为发送模式
#define RS485_RX PC13 // 设置RS485为接收模式
void SYS_Init(void)
{
SYS_UnlockReg();
CLK->PWRCON &= ~CLK_PWRCON_PD_WAIT_CPU_Msk; // 不等待CPU执行WFI指令
CLK->PLLCON = PLLCON_SETTING;
while((CLK->CLKSTATUS & CLK_CLKSTATUS_PLL_STB_Msk) == 0);
CLK->CLKDIV = (CLK->CLKDIV & ~CLK_CLKDIV_HCLK_N_Msk) | CLK_CLKDIV_HCLK(1);
CLK->CLKSEL0 &= ~CLK_CLKSEL0_HCLK_S_Msk;
CLK->CLKSEL0 |= CLK_CLKSEL0_HCLK_S_PLL;
CLK->AHBCLK |= CLK_AHBCLK_ISP_EN_Msk;
SYS_LockReg();
}
void UART_Config(void)
{
// 打开UART1的时钟
CLK->APBCLK |= CLK_APBCLK_UART1_EN_Msk;
// 选择UART1的时钟源为PLL
CLK->CLKSEL1 &= ~CLK_CLKSEL1_UART1_S_Msk;
CLK->CLKSEL1 |= CLK_CLKSEL1_UART1_S_PLL;
// 设置UART1的引脚
SYS->PC_H_MFP &= ~(SYS_PC_H_MFP_PC12_MFP_Msk | SYS_PC_H_MFP_PC13_MFP_Msk);
SYS->PC_H_MFP |= SYS_PC_H_MFP_PC12_MFP_UART1_TXD | SYS_PC_H_MFP_PC13_MFP_UART1_RXD;
// 配置UART1的波特率
UART1->BAUD = UART_BAUD_RATE;
// 配置UART1的数据格式
UART1->LCR = UART_WORD_LEN_8 | UART_PARITY_NONE | UART_STOP_BIT_1;
}
void RS485_Config(void)
{
// 设置RS485的引脚
GPIO_SetMode(PC, BIT12, GPIO_MODE_OUTPUT);
GPIO_SetMode(PC, BIT13, GPIO_MODE_OUTPUT);
// 设置RS485为接收模式
GPIO_SetBit(PC, BIT12);
GPIO_SetBit(PC, BIT13);
}
void UART1_SendByte(uint8_t data)
{
// 设置RS485为发送模式
GPIO_SetBit(PC, BIT12);
GPIO_ClearBit(PC, BIT13);
// 发送数据
UART1->THR = data;
while(!(UART1->FSR & UART_FSR_TX_EMPTY_Msk));
// 设置RS485为接收模式
GPIO_SetBit(PC, BIT12);
GPIO_SetBit(PC, BIT13);
}
void UART1_SendString(char *str)
{
while(*str) {
UART1_SendByte(*str++);
}
}
int main()
{
SYS_Init();
UART_Config();
RS485_Config();
while(1) {
if(UART1->ISR & UART_ISR_RDA_IF_Msk) {
uint8_t data = UART1->RBR;
// 将接收到的数据发送到串口屏
UART1_SendByte(data);
}
}
}
```
这段代码使用了新唐NUC029LAN单片机的UART和GPIO模块,将串口1的数据发送到迪文T5系列串口屏,并将接收到的数据从串口屏显示出来。为了适配RS485通讯,我们还需要通过GPIO控制RS485的接收和发送模式。如果您需要更详细的代码或者有其他问题,请随时联系我。
阅读全文