[技术问答] 这个例子怎么理解

[复制链接]
1271|14
 楼主| zhuotuzi 发表于 2018-9-6 10:31 | 显示全部楼层 |阅读模式
本帖最后由 zhuotuzi 于 2018-9-6 10:33 编辑

先看代码
  1. #include "N76E003.h"
  2. #include "SFR_Macro.h"
  3. #include "Function_define.h"
  4. #include "Common.h"
  5. #include "Delay.h"


  6. unsigned char temp _at_ 0x08;
  7. unsigned char idata itemp _at_ 0x80;
  8. unsigned char xdata xtemp _at_ 0x80;

  9. /*==========================================================================*/
  10. void main (void)
  11. {
  12.                 InitialUART0_Timer3(115200);
  13.           TI = 1;                              // Important, use prinft function must set TI=1;
  14.         
  15.                 while(1)
  16.                 {
  17.                         printf("\n Hello world");
  18.                         Timer0_Delay1ms(300);
  19.                 }
  20. }
另外还有一个文件
  1. #include "N76E003.h"

  2. /****************************************************************************/
  3. /* Define putchar send from UART1, printf function will send from P1.6(TXD_1)
  4. /* NOTICE: Since UART1 pin is multi-function with OCD DATA/CLK pin.
  5. /* Suggest download than use run with realchip but not OCD mode.
  6. /****************************************************************************/

  7. /*
  8. * putchar (mini version): outputs charcter only
  9. */
  10. #if 0
  11. char putchar (char c)
  12. {
  13.                 while (!TI_1);  /* wait until transmitter ready */
  14.                 TI_1 = 0;
  15.                 SBUF_1 = c;      /* output character */
  16.                 return (c);
  17. }
  18. #else
  19. char putchar (char c)  {
  20.   while (!TI);
  21.   TI = 0;
  22.   return (SBUF = c);
  23. }
  24. #endif


 楼主| zhuotuzi 发表于 2018-9-6 10:32 | 显示全部楼层
TI_1 和TI是啥区别?怎么两个?
 楼主| zhuotuzi 发表于 2018-9-6 10:33 | 显示全部楼层
发现新唐的码农不用心啊,每个例子的开头介绍都一样,都是GPIO的介绍,坑爹,能否用点心。
yediezeus 发表于 2018-9-6 11:09 | 显示全部楼层
yiyigirl2014 发表于 2018-9-6 18:53 | 显示全部楼层
应该是使用不同的端口。那个是预编译,你把0改成1就OK了,就可以来回切换端口。
捉虫天师 发表于 2018-9-6 19:35 | 显示全部楼层
默认的应该是串口0,另外一个配置应该是串口1
捉虫天师 发表于 2018-9-6 19:55 | 显示全部楼层
  1. UINT8 Receive_Data_From_UART1(void)
  2. {
  3.     UINT8 c;
  4.    
  5.     while (!RI_1);
  6.     c = SBUF_1;
  7.     RI_1 = 0;
  8.     return (c);
  9. }

  10. void Send_Data_To_UART1 (UINT8 c)
  11. {
  12.     TI_1 = 0;
  13.     SBUF_1 = c;
  14.     while(TI_1==0);
  15. }
捉虫天师 发表于 2018-9-6 19:55 | 显示全部楼层
看串口的头文件就行了。
小灵通2018 发表于 2018-9-6 21:52 | 显示全部楼层
新唐的这个例子很好啊,几个端口都想到了。
xuanhuanzi 发表于 2018-9-8 23:19 | 显示全部楼层
重定向的应用。
xuanhuanzi 发表于 2018-9-9 18:54 | 显示全部楼层
测试了几下,现在掌握住方法了。
antusheng 发表于 2018-9-9 19:42 | 显示全部楼层
说句心里话,学会003吃喝不愁。
734774645 发表于 2018-9-10 22:29 | 显示全部楼层
还可以重定向到SPI呢。
heisexingqisi 发表于 2018-9-10 23:49 | 显示全部楼层
都是串口0,只是映射到不同管教。
jasontu 发表于 2018-9-12 09:09 | 显示全部楼层
N76E003有2个串口,寄存器後面有带_1, 表示串口1,没有则是串口0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

214

主题

3375

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部