硬件准备:
jlink调试器,usb转ttl串口调试,开发板DT5M4765R8L6
软件程序
程序包含:
- 头文件:DT5M4765.h uart_misc.h
- 主程序文件:main.c
其中主程序:
#include <stdlib.h>
#include "DT5M4765.h"
#include "uart_misc.h"
//****************************Ö÷Ƶµ÷Õûº¯Êý***********************************//
//PLL_N=0 Fpll=64MHZ; PLL_N=1 Fpll=96MHZ; PLL_N=2 Fpll=128MHZ; PLL_N=3 Fpll=NULL
//PLL_M£º0,1,2;
//Fsys=Fpll/(PLL_M+1);
//**************************************************************************//
void PLL_Init(unsigned char PLL_M,unsigned char PLL_N,unsigned char Cpu_Wait)
{
if((PLL_M==0) && (PLL_N==0))
{
Cpu_Wait=3;
}
else
{
Cpu_Wait=0;
}
*(vu32*)(0x10000000ul) = 0x0010;//switch to 32KHz //ʱÖÓÀ´Ô´32kHz¾§Õñ£¬APB clock enable
__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();
*(vu32*)(0x04000000ul) = Cpu_Wait;//set cpu wait //ÉèÖÃCPUµÈ´ýʱ¼ä£¬ÒÔÊÊÓ¦ROM×î´óÔËÐÐËÙ¶È
__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();
*(vu32*)(0x0400001Cul) = PLL_M;//change pll_M default =3; //ϵͳʱÖÓ·ÖƵ¿ØÖÆ
__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();
*(vu32*)(0x04000018ul) = PLL_N;//change pll_N default =0; //PLL±¶Æµ¿ØÖÆ£¬0=64MHz£¬1=96MHz£¬2=128MHz£¬3=ÎÞÊä³ö
__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();
*(vu32*)(0x10000000ul) = 0x4010;//switch to pll //ʱÖÓÀ´Ô´PLL
__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();
}
//**************************************************************************//
int main()
{
PLL_Init(3,0,0); //ÉèÖÃϵͳƵÂÊFsys = 64/(3+1) = 16MHz
UART_Init_Usr(); //UART0 µ÷ÓÃ
while(1)
{
//printf("UART0 is ok \r\n");
UART_Write((uint8_t *)"UART0 is ok \r\n",14);
__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();
}
}
主要包括uart初始化,然后读取数据。
烧写设置:
uart串口运行结果:
|