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

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

    关注

    5082

    文章

    19111

    浏览量

    304878
  • STM32
    +关注

    关注

    2270

    文章

    10896

    浏览量

    355786

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

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

收藏 人收藏

    评论

    相关推荐

    关于理想汽车的车辆OTA机制问题

    近期,有网友比较关心理想汽车的车辆OTA机制,针对大家关心的问题,我们整理出以下问答供大家了解。
    的头像 发表于 12-18 10:09 133次阅读

    虚拟主机名词解释

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

    usb主机模式怎么打开

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

    浅谈SOC片上系统LoRa-STM32WLE5数据安全防御机制

    LoRa-STM32WLE5 SoC模块不仅仅是一个具备出色通信能力的无线模块,更是一个集成了多重安全机制的高效SoC解决方案。通过AES硬件加密、PCROP读写保护、MPU内存管理等威廉希尔官方网站 的结合,它为物联网设备提供了全方位的安全防护,确保数据、固件、系统在各个层面上的安全
    的头像 发表于 09-06 17:37 514次阅读
    浅谈SOC片上系统LoRa-<b class='flag-5'>STM32</b>WLE5数据安全防御<b class='flag-5'>机制</b>

    请问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

    电容器储能机制详解

    电容器,作为电子元件的重要组成部分,其储能机制对于理解电路运行、提高能量转换效率以及推动科技发展具有至关重要的作用。本文将对电容器的储能机制进行深入的探讨,包括其基本结构、储能原理、储能类型以及应用领域等多个方面。
    的头像 发表于 05-16 17:50 1569次阅读

    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 2423次阅读
    <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

    如何将CYW54590与STM32主机处理器连接?

    将基于CYW54590的WiFi/BLE模块(如 muRata的2BZ型)连接到STM32主机处理器有什么指导?
    发表于 03-01 07:18

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

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