飞思卡尔MC9S12XS128串口相关功能函数

该博客详细介绍了针对飞思卡尔MC9S12XS128微控制器的串口初始化及数据发送功能的函数实现,包括ASCII转换、字符与字符串发送、十六进制与十进制数字发送,还提供了中断服务程序的代码示例。
摘要由CSDN通过智能技术生成

//串口的初始化

//波特率为9600,8位数据格式,无校验,一个停止位,用查询方式发送
void SCI_Init(void)
{
   SCI0BDH = 0x00;
   SCI0BDL = 0x41;  //波特率=BUSCLK/(16*BR[12:0])=38400 , BUSCLK=40MHz  14400_0xae   38400_0x41  230400_0x0b
   SCI0CR2 = 0x2C; //发送,接收允许,接收采用中断方式
}

 

//将8位二进制数转换为相应的ASCII字符
unsigned char Digit_ASCII(unsigned char temp)
{
    if(temp>=0x0A)//如查temp有两位,如11,则转换为B
        temp = temp + 'A' - 0x0A;//'A'=65, 0x0A=10,
    else
        temp = temp + '0';     //temp为数字0~9, 只有1位
    return temp;
}

//发送单个字符,下面这两个函数均可以
void SCI_SendChar(unsigned char ch)
{
   while(SCI0SR1_TC == 0);       //keep waiting when not empty 
   SCI0DRL = ch;
}

//或者
void SCI_SendChar(unsigned char ch)
{
   while(SCI0SR1_TDRE == 0);       //keep waiting when not empty 
   SCI0DRL = ch;
}

 

//通过SCI发送字符串
void SCI_SendStr(char *str)
{
    while(*str!=0)
       SCI_SendChar(*str++);
}
  
//把一个8位数以ASCII形式通过SCI0发送去
void SCI_SendHex8(unsigned char a)

软件介绍: 平时我们最常用到的下载程序的方法是通过USB数据线或其他数据线进行程序的烧写,这个方式是通过外界提供给单片机高电压来对flash擦除和写入完成的。而Bootloader不需要外界提供高电压仅靠正常工作电压便可完成对flash的擦除和写入,从而达到更新程序的目的。Bootloader的最大优点是:在不需要外部编程器的情况下,对嵌入式产品的应用代码进行更新升级。它使得通过局域网或者Intemet远程更新程序成为可能。例如,如果有5000个基于MCU的电能表应用程序需要更新,电能表制造商的技术人员就可以避免从事对每一个电能表重新编程的巨大工作量,通过使用Bootloader的功能,由控制中心通过电能表抄表系统网络,远程对5 000个电表重新编程。可见,Bootloader功能对于嵌入式系统的广泛应用具有十分重要的意义。关于Flash的擦除和写入,真的是让我最费力的一部分,网上的相关资料很少,好不容易找到了一点相关代码,却发现程序不能正常的运行,而且更令人无解的是程序本身怎么检查都检查不出错误。好啦,一点一点的说说我的辛酸史。首先,如果你在寻找飞思卡尔的flash擦除写入操作,很遗憾的告诉你,如果你用的不是MC9S12XS系列,那么很有可能,你所需要的flash擦除写入操作和我接下来将要说明的擦除写入操作基本上不沾边(除了原理上),因为飞思卡尔不同系列的单片机对flash的擦除写入操作的定义差别很大,不注意型号的话反而会被误导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值