#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define LEDCPU PORTA_PA0
#define LEDCPU_dir DDRA_DDRA0
#define LED_ON 0
#define LED_OFF 1
#define BUS_CLOCK 8000000 //总线频率
#define OSC_CLOCK 16000000 //晶振频率
#define BAUD 9600 //串口波特率
unsigned char putstring[]="abcdef
";
/*************************************************************/
/* 初始化SCI */
/*************************************************************/
void INIT_SCI(void)
{
SCI2BD = BUS_CLOCK/16/BAUD; //设置SCI2波特率为9600
SCI2CR1 = 0x00; //设置SCI2为正常模式,八位数据位,无奇偶校验
SCI2CR2 = 0x08; //允许发送数据,禁止中断功能
}
/*************************************************************/
/* 串口发送函数 */
/*************************************************************/
void SCI_send(unsigned char data)
{
while(!SCI2SR1_TDRE); //等待发送数据寄存器(缓冲器)为空
SCI2DRL = data;
}
/*************************************************************/
/* 串口发送字符串函数 */
/*************************************************************/
void send_string(unsigned char *putchar)
{
while(*putchar!=0x00) //判断字符串是否发送完毕
{
SCI_send(*putchar++);
}
}
/*************************************************************/
/* 主函数 */
/*************************************************************/
void main(void)
{
DisableInterrupts;
// INIT_PLL();
INIT_SCI();
LEDCPU_dir = 1;
EnableInterrupts;
LEDCPU = LED_ON;
for(;;) //循环发送字符串
{
send_string(putstring);
LEDCPU=~LEDCPU; //闪灯
}
}
串口调试助手波特率为9600
停止位1
数据位8
无奇偶校验
但出现乱码情况,求救。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>