找回密码
 立即注册
楼主: zhangz***

只引出P3.0,P3.1,想要把printf()打印的信息通过USB传到电脑?

[复制链接]

该用户从未签到

4

主题

52

回帖

160

积分

注册会员

积分
160
 楼主| 发表于 2023-12-29 10:34:39 | 显示全部楼层
乘风飞扬 发表于 2023-12-29 10:06
使用STC-USB Link1D工具的CDC1串口与芯片通信的话,芯片需要配置成UART串口与工具通信;
而例程是将芯片 ...

那么问题来了:芯片的P3.0,P3.1引脚的复用是怎么控制的?
因为它有3种用法,(1)并口P3.0,P3.1,(2)串口RxD,TxD,(3)USB口D-,D+,我怎么控制它们用做哪个?

比如,现在代码里面已经有USB配置了,如果我增加UART的代码,而且

S1_S[1:0]:串口 1 功能脚选择位
00 RxD TxD -> P3.0 P3.1

USB和UART都跑,都使用这2引脚,那不是冲突了吗?

回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-12-29 11:01:20 | 显示全部楼层
    zhangzhonghua 发表于 2023-12-29 10:34
    那么问题来了:芯片的P3.0,P3.1引脚的复用是怎么控制的?
    因为它有3种用法,(1)并口P3.0,P3.1,(2)串 ...

    如果使用了USB功能,那么串口1就需要切到其它脚位通道使用。
    每个脚位使能其中一种复用功能,除非你能处理好分时复用,否则不建议一个脚位做不同功能。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    4

    主题

    52

    回帖

    160

    积分

    注册会员

    积分
    160
     楼主| 发表于 2023-12-29 13:49:09 | 显示全部楼层
    乘风飞扬 发表于 2023-12-29 11:01
    如果使用了USB功能,那么串口1就需要切到其它脚位通道使用。
    每个脚位使能其中一种复用功能,除非你能处 ...

    了解,就是说要开发者自己控制好、避免冲突。
    但我还想问下,芯片内部的硬件连线是怎样的,是直接连接到USB、UART,还是有3选1复用开关?
    因为我印象中,其它芯片(好像TI的)对于复用引脚,有PinMux这个复用开关可以控制它连接到哪的。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-12-29 13:59:43 | 显示全部楼层
    zhangzhonghua 发表于 2023-12-29 13:49
    了解,就是说要开发者自己控制好、避免冲突。
    但我还想问下,芯片内部的硬件连线是怎样的,是直接连接到U ...

    STC单片机可以通过寄存器选择硬件使用的脚位通道:

    截图202312291358499553.jpg

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    4

    主题

    52

    回帖

    160

    积分

    注册会员

    积分
    160
     楼主| 发表于 2023-12-29 15:28:05 | 显示全部楼层
    乘风飞扬 发表于 2023-12-29 13:59
    STC单片机可以通过寄存器选择硬件使用的脚位通道:

    这里的几选1的1是指UART,我上面帖子问的几选1的1是指引脚。

    了解,估计是没有。
    提一个需求:既然printf()有了,它兄弟scanf()有没有连到USB啊?这2成双结对才好玩呢。

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-12-29 15:56:46 | 显示全部楼层
    zhangzhonghua 发表于 2023-12-29 15:28
    这里的几选1的1是指UART,我上面帖子问的几选1的1是指引脚。

    了解,估计是没有。

    功能脚切换寄存器,切换的就是脚位,建议看看规格书:
    截图202312291551205405.jpg
    USB CDC提供printf接口方便打印调试信息,没有提供scanf接口,接收数据通过下面接口获取:
    1.     if (bUsbOutReady) //USB调试及复位所需代码
    2.     {
    3. //        USB_SendData(UsbOutBuffer,64);  //发送数据缓冲区,长度(接收数据原样返回, 用于测试HID)
    4.         
    5.         usb_OUT_done();
    6.     }
    复制代码

    附件提供一套串口printf、scanf的使用方法供参考。

    串口printf-scanf-20230419.zip

    11.97 KB, 下载次数: 24

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    4

    主题

    52

    回帖

    160

    积分

    注册会员

    积分
    160
     楼主| 发表于 2023-12-29 15:58:23 | 显示全部楼层
    本帖最后由 zhangzhonghua 于 2023-12-29 16:18 编辑

    问题:我想仅仅擦除,让芯片回到刚到手时的空白应用程序状态,怎么做?

    我印象中,其它芯片的开发工具有这个功能的,但我刚才在程序文件窗口点击清空区域,再点击下载,是不行的。

    点评

    清空是不做处理的,STC-ISP不会擦除未使用的区域,擦除芯片需要全部填充0x00再下载,0x00在指令集中是NOP空操作,单片机不会执行任何操作  发表于 2024-2-10 14:31
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:00
  • 签到天数: 136 天

    [LV.7]常住居民III

    4

    主题

    234

    回帖

    902

    积分

    高级会员

    积分
    902
    发表于 2023-12-29 16:08:47 | 显示全部楼层
    zhangzhonghua 发表于 2023-12-29 15:58
    问题:我想仅仅擦除,让芯片回到刚到手时的空白应用程序状态,怎么做?
    ...

    你想清空芯片吗?
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    4

    主题

    52

    回帖

    160

    积分

    注册会员

    积分
    160
     楼主| 发表于 2023-12-29 16:59:33 | 显示全部楼层
    lzl1okOK 发表于 2023-12-29 16:08
    你想清空芯片吗?

    是的,怎么搞?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:00
  • 签到天数: 136 天

    [LV.7]常住居民III

    4

    主题

    234

    回帖

    902

    积分

    高级会员

    积分
    902
    发表于 2023-12-29 17:03:56 | 显示全部楼层
    自己写一个空程序就好了
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-19 07:27 , Processed in 0.069425 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表