本文共 1804 字,大约阅读时间需要 6 分钟。
1、2011.11.4 MSP430串口波特率设置函数
void UART3_set_bps(unsigned int BaudRate)
{ BaudRate=25000000/ BaudRate; //主系统时钟频率=25MHz UCA3BR0 =BaudRate&0x00FF; UCA3BR1 =BaudRate>>8; }附:
void UART3_Init() { // UART3 Function, Idle line multiprocessor Protocol, 9600,8,n,1 for GSM P10SEL |= 0x30; // P10.4,5 = USCI_A3 TXD/RXD //P9SEL = 0x30; UCA3CTL1 |= UCSWRST; // **Put state machine in reset** UCA3CTL1 |= UCSSEL_1; // ACLK 辅助系统时钟 25M UCA3BR0 = 0x2C; // 25MHz 9600 (see User's Guide) UCA3BR1 = 0x0A; // 25MHz 9600 UCA3MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0 UCA3CTL1 &= ~UCSWRST; // **Initialize USCI state machine** UCA3IE |= UCRXIE; // Enable USCI_A0 RX interrupt }
2、字符串转成数值:
while(*BandRate='\0') {num=num*10+(*BandRate-'0'); BandRate++;
3、数值转换成字符串sprintf个函数,如: sprintf(s, "%d", 123); //产生"123"
%% 印出百分比符号,不转换。 %c 整数转成对应的 ASCII 字元。 %d 整数转成十进位。 %f 倍精确度数字转成浮点数。 %o 整数转成八进位。 %s 整数转成字串。 %x 整数转成小写十六进位。 %X 整数转成大写十六进位。$money = 123.1
$formatted = sprintf (".2f", $money); // 此时变数 $ formatted 值为 "123.10"
$formatted = sprintf (".2f", $money); // 此时变数 $ formatted 值为 "00123.10"
$formatted = sprintf ("%-08.2f", $money); // 此时变数 $ formatted 值为 "123.1000"
$formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比 参数解释:
%开始符
0是"填空字元" 表示,如果长度不足时就用0来填满。
10:格式化后总长度
2f:小数位长度,即2位
¢第3行值为"00123.10" 解释:
因为2f是(2位)+小数点符号(1)+前面123(3位)=6位,总长度为8位,故前面用[填空字元]0表示,即00123.10
¢第4行值为"123.1000" 解释:
-号为反向操作,然后填空字元0添加在最后面了
4、十进制数值转成十六进制字符数组
以2字节的字符数组存放一个16进制数(存放高八位和低八位)
float value0
char value3_char[2];
Dec_To_Hex(value3_char,value0);//风速
void Dec_To_Hex(char *p,float value) { int TempValue; TempValue=(int)(value); *p=((TempValue>>8)&0xFF);/
int Negative_To_Bin(int Negative) { Negative=-Negative;//取绝对值 Negative=~Negative;//按位取反 Negative=Negative+1; return Negative; }
5、单精度浮点数转16进制:
转载地址:http://ckidz.baihongyu.com/