NuMicro Cortex_M058 串口学习

#include "stdio.h"
#include "DrvSYS.h"
#include "DrvGPIO.h"
#include "DrvUART.h"
void delay(uint16_t x)
{
while(x--)DrvSYS_Delay(1000);
}  
 
void UART_Init()
{
 STR_UART_T uart0_set;
 DrvSYS_SelectIPClockSource(E_SYS_UART_CLKSRC, 0); //使能UART时钟
 DrvSYS_SetClockDivider (E_SYS_UART_DIV, 0x01);  
 DrvGPIO_InitFunction(E_FUNC_UART0);//复用功能引脚设置
  /*--------------------配置UART波特率、数据位等信息-------------------*/
 uart0_set.u32BaudRate = 9600;//波特率9600,可配置
 uart0_set.u8cDataBits = DRVUART_DATABITS_8; //数据位设定:8数据位
 uart0_set.u8cStopBits = DRVUART_STOPBITS_1; //停止位设定:1停止位
 uart0_set.u8cParity   = DRVUART_PARITY_NONE; //无奇偶校验
 uart0_set.u8cRxTriggerLevel = DRVUART_FIFO_1BYTES; //1字节触发接收中
 
DrvGPIO_Open(E_PORT3,E_PIN0,E_IO_INPUT);//配置P30 口为输入
DrvGPIO_Open(E_PORT3,E_PIN1,E_IO_OUTPUT);//配置P31 口为输出
 
DrvUART_Open (UART_PORT0, &uart0_set); //指定串口0,加载结构体配置
}
 
 
void system_Init()
{
UNLOCKREG();// 对写保护位操作时 需要一次向0x50000 0100写入 0x59,0x16,0x88,
DrvSYS_SetOscCtrl(E_SYS_XTL12M, 1);//与其 SYSCLK->PWRCON.XTL12M_EN = 1; 等同
// PWRCON寄存器(这些寄存器在上电复位到用户解锁定之前是锁定的)除了 BIT[6]位其他位都受写保护
// 解除这些需要向 0x50000 0100写入 0x59,0x16,0x88, 
// 令PWRCON寄存器的BITP[0]为1(即设定12M外部晶振)
DrvSYS_SetOscCtrl (E_SYS_OSC22M, 0);//禁用内部22M时钟
delay(100);//while (DrvSYS_GetChipClockSourceStatus(E_SYS_XTL12M) != 1);//等待外部12MHZ晶振就绪
LOCKREG();
}
 
int main(void)
{
uint32_t u32data,u32clock;
uint32_t Buffer[1] ;//定义发送数据数组
uint32_t Buffer1[1];
delay(2000);
UART_Init();
 
u32clock = DrvSYS_GetExtClockFreq ( ); //取得外部crystal时钟频率。单位是Hz
u32data = DrvSYS_ReadProductID ( );// 读取产品设备ID
 
Buffer[0]=u32data;
Buffer1[0]=u32clock;
while(1)
{
// 
 while(DrvUART_Write(UART_PORT0,(uint8_t*)Buffer,4)!=E_SUCCESS);//写数据到收发送缓存,然后通过UART发送出去
//  while(DrvUART_Read (UART_PORT0,*Buffer, 5)!=E_SUCCESS); //读数据到收发送缓存,然后通过UART发送出去
 _DRVUART_SENDBYTE (UART_PORT0, 0xAA); //发送一个字节数到串口
 while(DrvUART_Write(UART_PORT0,(uint8_t*)Buffer1,4)!=E_SUCCESS);//写数据到收发送缓存,然后通过UART发送出去
 _DRVUART_SENDBYTE (UART_PORT0, 0xAA); //发送一个字节数到串口
 delay(1000);
}
}

 

期待 发表于09-24 09:31 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

期待
期待(总统)
金币:32864个|学分:87132个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号