0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于STM32半主机机制的作用

STM32嵌入式开发 来源:STM32嵌入式开发 作者:STM32嵌入式开发 2021-04-09 14:02 次阅读

半主机机制的作用

半主机是用于ARM目标的一种机制,可将来自STM32单片机应用程序的输入输出请求传送至运行仿真器的PC主机。使用此机制可以启用C库中的函数,如printf()和scanf(),来使用PC主机的屏幕和键盘。这样就可以看到单片机的输入输出,方便进行调试。注意:种机制的运行需要仿真器,否则无法运行。

简单的来说,半主机模式就是通过仿真器实现开发板在电脑上的输入和输出。

开发时单片机需要独立运行,开发者就应该去掉仿真器,把printf函数通过单片机的外设来实现,例如通过开发板的串口。

非半主机机制下printf函数的实现方法

Use MicroLIB(微库)

因为使用微库的话,不会使用半主机模式。

如下图,在点开MDK软件的魔术棒,勾选Target选项卡中的“Use MicroLIB”。这样就可以使用printf()函数,通过USART输出数据到电脑串口助手。

37a51ec0-9869-11eb-8b86-12bb97331649.png

在主程序中添加代码

不使用Use MicroLIB(微库),就要在工程中加入以下代码, 以支持printf函数 。代码是写在USART的初始化文件中,记得修改USARTx,换成你要输出的USART端口号。

【功 能】 printf函数重定向支持代码 * 加入以下代码, 使用printf函数时, 不再需要选择use MicroLIB * 参 数: * 返回值:

#pragma import(__use_no_semihosting) //为确保没有从C库链接使用半主机的函数 struct __FILE { int handle; }; // 标准库需要的支持函数FILE __stdout; // FILE 在stdio.h文件void _sys_exit(int x) // 定义_sys_exit()以避免使用半主机模式{ x = x; }

int fputc(int ch, FILE *f) // 重定向fputc函数,使printf的输出,由fputc输出到UART, 这里使用串口1(USART1){ //if(xFlag.PrintfOK == 0) return 0; // 判断USART是否已配置,防止在配置前调用printf被卡死

while((USARTx -》SR&0X40)==0); // 等待上一次串口数据发送完成 USARTx -》DR = (u8) ch; // 写DR,串口1将发送数据 return ch;}

STM32嵌入式开发

原文标题:STM32的半主机机制

文章出处:【微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5056

    文章

    18954

    浏览量

    301656
  • STM32
    +关注

    关注

    2264

    文章

    10852

    浏览量

    354169

原文标题:STM32的半主机机制

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    虚拟主机名词解释

    虚拟主机(Virtual Host/Virtual Server)是一种在单一主机主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。以下是关于虚拟
    的头像 发表于 10-25 09:26 103次阅读

    usb主机模式怎么打开

    与外部设备进行数据传输和交互。以下是关于如何打开USB主机模式的指南。 1. 了解USB主机模式 USB主机模式允许设备充当USB主机,这意
    的头像 发表于 09-25 09:08 646次阅读

    请问D类功放的桥逆变加入变压器的作用是什么?

    请问D类功放的桥逆变加入变压器的作用是什么? 想做一款100W的功放,看到很多都是功放IC直接LC滤波,但是也有一些方案是隔离桥的变压器之后用LC滤波,想了解一下问什么会有变压器这种方案? 多谢
    发表于 08-15 06:42

    申威终端主机G701

    主机
    jf_67464575
    发布于 :2024年06月11日 08:53:30

    使用USBUART组件与主机PC通信,如果在串行端口打开的情况下终止固件,主机端为什么会报错?

    我正在使用 USBUART 组件与主机 PC 通信,我一直在寻找某种机制来关闭 MCU 端的串行端口,或者至少通知主机我将关闭端口。 我遇到过这样一个问题:如果在串行端口打开的情况下终止固件(如重置
    发表于 06-03 08:41

    求助,关于stm32应用bootloader主机端接收ACK的问题求解

    最近接手了一个学长所做的编程板程序。其中想用GO命令实现程序在目标新品的ram区运行功能。发送0x21+0xDE后返回ACK正常,但是发送起始地址和校验和之后很长时间主机未收到ACK或者NACK。我
    发表于 05-17 06:45

    STM32F107做USB主机键盘,键盘上那3个LED灯的功能怎么按都不起作用是怎么回事?

    STM32F107做USB主机读取键盘按键数值用串口调试助手显示都很正常,只是键盘上那3个LED灯的功能怎么按都不起作用,求大神指点
    发表于 05-14 06:56

    STM32F0作为I2c的从机时,响应主机的读命令,如何知道主机发回的ACK还是No ACK?

    如题, 请教各位大神, STM32F0作为I2c的从机时(硬件IIc,中断方式), 响应主机的读命令, 发送了一个字节后 , 如何知道主机发回的ACK还是No ACK , 范例里面都是一个字节的, 如果
    发表于 05-11 09:10

    关于STM32 DMAMUX模块具体的应用示例代码

    有人通过公众号微信留言,询问是否有关于STM32 DMAMUX模块具体的应用示例代码。同时,个人也发现,虽然STM32片内的DMAMUX不是什么新模块,似乎还是很多人并不太熟悉。这里借机聊聊这方面的内容,重点演示相关功能的实现,
    的头像 发表于 03-25 09:15 2234次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>STM32</b> DMAMUX模块具体的应用示例代码

    stm32h750既要实现主机,也要实现从机功能,要怎么实现呢?

    STM32_USB_Device_Library和STM32_USB_Host_Library。请问下,H750既要实现主机,也要实现从机功能,要怎么实现呢?有什么资料可以参考下吗?
    发表于 03-19 06:46

    桥驱动电路的作用及设计要点

    桥驱动电路根据控制信号的输入,在适当的时机控制高侧和低侧开关器件的导通与截止。通过精确控制开关的状态,桥驱动电路可以控制电源电压的输出和输出功率的调节。
    的头像 发表于 02-05 18:17 6146次阅读
    <b class='flag-5'>半</b>桥驱动电路的<b class='flag-5'>作用</b>及设计要点

    stm32 usb 主机发送 pid in的原理和实现方法

    STM32是一款常用的微控制器系列,它具有广泛的应用领域,包括工业控制、汽车电子、消费电子等。其中,STM32同时支持USB主机和设备功能,使得它在与其他USB设备的通信中具有很大的优势。在本文
    的头像 发表于 12-20 15:56 1224次阅读

    固态电池率先进入量产装车阶段

    近日有更多电池厂、主机厂也纷纷在固态电池赛道中释放出升温的信息。本周,蜂巢能源正式发布全球首款量产方形固态电池(即二代果冻电池),突破了方壳中高镍掺硅体系膨胀的瓶颈,目前已进入A样开发阶段。
    发表于 12-19 15:08 596次阅读

    STM32 DMA传输的问题分析

    用户使用STM32G473RET6芯片,开发环境STM32CubeMX+Keil(LL库)。使用DMA1通道1,在传输中断和完全传输中断里,拷贝ADC采集的数据。在应用过程中发现DMA
    的头像 发表于 12-01 09:19 2577次阅读
    <b class='flag-5'>STM32</b> DMA传输的问题分析

    求助,关于KW45芯片双倍模式的SPI配置问题

    最近调试KW45芯片的SPI外围, KW45作为主机, 有三个SPI奴隶装置。有一个宿主需要与一个双倍核心和一个全倍的装置进行沟通。 对不起: 1, 双倍模式 SPI 主机如何配置
    发表于 11-13 07:04