tag 标签: printf

相关博文
  • 热度 9
    2022-11-4 00:11
    2022 次阅读|
    0 个评论
    一:第一感受: 优点:板子小巧,功能强大,做工优良 不足:没有led指示灯,有led灯的话调试会方便很多 二:工程环境搭建 直接参考官网资料,很容易就搭建好了工程环境,测试ok,不得不说资料很详细。 三:IO口测试 直接用官方例程进行测试: 由于没有指示灯,所以直接用万用表进行功能测试 1:执行指令 GPIO_SET_OUTPUT_PIN_INV(gpio_sel,(GPIO_PIN7)); 量PA7脚电压为1.6V 2:执行指令 GPIO_SET_OUTPUT_PIN_TO_1(gpio_sel,(GPIO_PIN7)); 量PA7脚电压为3.2V 3:执行指令 GPIO_SET_OUTPUT_PIN_TO_0(gpio_sel,(GPIO_PIN7)); 量PA7脚电压为0V 三:串口功能测试 同样直接用官方例程进行测试不用做任何修改:接串口4到usb转串口模块上:直接测试收发如下: 四:串口printf功能移植 参考大神的方法:链接如下: 五:HAL库移植测试 参考游乐场大神的程序,链接如下: 最开始测试,串口波特率不对,修改如下图所示分频后解决 然后还遇到的问题是打印中文信息乱码,如下图所示: 经过咨询大神,发现是编码不一致导致,HAL库中使用的是UTF8字符编码,修改后OK如下图所示: 目前移植的程序还存在申请锁超时问题,待进一步解决。 总结:MC3172单片机上手容易,多线程操作给力,串口丰富可以任意分配功能强大。
  • 热度 3
    2020-3-14 21:51
    3934 次阅读|
    0 个评论
    https://blog.csdn.net/abcdu1/article/details/74926375 原文地址 1.左对齐 方式1 printf ( "%d\n" , 101010 );默认打印格式为左对齐; 方式2 printf ( "%-10d\n" , 101010 );在打印数字宽度前面加一个“-”。 说明:数字宽度为10,如果要打印的位数小于10,则在后面补足空格;如果要打印的位数大于10,则打印所有的数字,不会截断。 2.右对齐 printf ( "%10d" , 101010 ); 在%和d之间加上数字宽度,就可以右对齐。 说明:数字宽度为10,如果要打印的位数小于10,左边补足空格;如果要打印的位数大于10,则打印所有的数字,不会截断。
  • 热度 18
    2015-4-20 18:22
    1814 次阅读|
    0 个评论
    以前发过两版简易的串口printf函数实现,最近学习了一段时间Linux的库文件,回过头又有不同的理解。 这一版函数基于MSP430F169,%d %x %o %b的实现不再由自己编写函数,而是调用MSP430-GCC的标准库函数: #include char *itoa(int num, char *str, int radix); send_fun函数指针,指向调用的UARTx的字节发送函数: void uart_printf(send_fun fun, char *fmt, ...) {         char *pnt = (char *)fmt + sizeof(fmt);         char *str, buf ;         int radix;         while (*fmt != '\0') {                 if (*fmt != '%') {                         fun(*fmt);                         fmt += 1;                         continue;                 }                 switch (*(fmt + 1)) {                 case 'c':                         fun(*((int *)pnt));                         pnt += sizeof(int);                         fmt += 2;                         continue;                 case 's':                         str = (char *)*((int *)pnt);                         while (*str != '\0')                                 fun(*str++);                         pnt += sizeof(int);                         fmt += 2;                         continue;                 case 'd':                         radix = 10;                         goto SEND_NUM;                 case 'x':                         radix = 16;                         goto SEND_NUM;                 case 'o':                         radix = 8;                         goto SEND_NUM;                 case 'b':                         radix = 2;                         goto SEND_NUM; SEND_NUM:                         str = itoa(*(int *)pnt, buf, radix);                         while (*str != '\0')                                 fun(*str++);                         pnt += sizeof(int);                         fmt += 2;                         continue;                 default:                         break;                 }         } } 实际上,库stdio.h中也提供了printf的实现,直接调用它们就可以了: int __attribute__((format (printf, 2, 3))) uprintf(int (*func)(int c), const char *fmt, ...);  
  • 热度 15
    2015-1-27 22:43
    10218 次阅读|
    0 个评论
    当要把一个数 写到液晶上去,一般有两种方法. 1.自己写个函数,把要写的数转换成数组的存放形式. 2.使用sprintf 将各种类型的数据打印成字符串,省去了写函数的繁琐. 3. sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format ... ); 除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。 sprintf 使用格式化字符串来指定串的格式,这点和printf相同,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。   例如,想把3.145写到液晶上 sprintf( buffer, "%10.3f,3.145 );    
  • 热度 19
    2013-6-26 20:23
    1620 次阅读|
    0 个评论
    但是在通信过程中不能直接调用printf()函数,需要对工程属性进行配置,具体步骤如下: 1.首先要在main文件中包含"stdio.h"(标准输入输出头文件) 2.在main文件中重定义函数 //加入以下代码,支持printf函数,而不需要选择use MicroLIB #if 1 #pragma import(__use_no_semihosting)              //标准库需要的支持函数                  struct __FILE  {  int handle;    };    FILE __stdout;        //定义_sys_exit()以避免使用半主机模式     _sys_exit(int x)  {  x = x;  }      //重定义fputc函数  int fputc(int ch, FILE *f) {      while((USART1-SR0X40)==0);/*循环发送,直到发送完毕   */     USART1-DR = (u8) ch;          //uart_put(ch); return ch; } #endif    3.在工程属性的"target"-"code generation"选项中勾选"use microlib"
相关资源
  • 所需E币: 0
    时间: 2021-4-13 17:24
    大小: 11.15KB
    上传者: LiuSirSZ
    C语言基础作业-Printf函数.rar
  • 所需E币: 0
    时间: 2020-12-11 23:24
    大小: 29KB
    上传者: czdian2005
    C语言基础作业-Printf函数
  • 所需E币: 4
    时间: 2019-12-24 15:06
    大小: 54KB
    上传者: 2iot
    LM3S811开发板串口发送示例_工程文件此为工程文件,但未包含stellaris外围固件库,请自行链接即可……
  • 所需E币: 5
    时间: 2019-12-24 11:20
    大小: 96.91KB
    上传者: 238112554_qq
    Linux下光标定位及颜色控制linux下光标定位和清屏函数printf("\033[47;31mhelloworld\033[5m");47是字背景颜色,31是字体的颜色,helloworld是字符串.\033[以及后面的\033[5m是控制码.颜色代码:QUOTE:字背景颜色范围:40--49字颜色:30--3940:黑30:黑41:红31:红42:绿32:绿43:黄33:黄44:蓝34:蓝45:紫35:紫46:深绿36:深绿47:白色37:白色ANSI控制码:QUOTE:\033[0m关闭所有属性\033[1m设置高亮度\03[4m下划线\033[5m闪烁\033[7m反显\033[8m消隐\033[30m--\033[37m设置前景色\033[40m--\033[47m设置背景色……