历史上的今天
返回首页

历史上的今天

今天是:2024年08月31日(星期六)

2018年08月31日 | stm32模拟串口(基于高精度延时)

2018-08-31 来源:eefocus

上一篇实现了高精度延时,这一节我们利用已实现的高精度延时接口来模拟串口发生数据(接收数据暂时没用到,所以偷懒没实现),直接上代码。




一、softserial.h


 

 

#ifndef _SOFTWARE_SERIAL_H

#define _SOFTWARE_SERIAL_H

 

#include "stm32f1xx.h"

 

void soft_serial_init(void);

void serial_write(uint8_t const data);

void serial_transimt(const uint8_t *p_txdata,uint16_t size);

void serial_transmit_str(const uint8_t *str);

 

#endif


二、softserial.c


 

#include "softserial.h"

#include "delay.h"

#include "gpio_api.h"

//#include "sf6.h"

 

 

#define SER_TX      PA_15

 

#define TX_H()      gpio_write(SER_TX,1)

#define TX_L()      gpio_write(SER_TX,0)

 

#define BAUD        9600

 

const uint16_t bit_dly = 1000000U/BAUD;     /* 1s = 1,000,000us */

 

 

 

void soft_serial_init(void)

{

    gpio_init(PA_15);

    gpio_format(PA_15,GPIO_MODE_OUTPUT_PP,GPIO_PULLUP);

    TX_H();

}

 

 

void serial_write(uint8_t const data)

{

    uint8_t i;

    

    TX_L();

    udelay(bit_dly);

    

    for(i=0;i<8;i++){

        if((data>>i & 0x01) == 0){

            TX_L();

            udelay(bit_dly);

        }else{

            TX_H();

            udelay(bit_dly);

        }

    }

    TX_H();

    udelay(bit_dly);

}

 

void serial_transimt(const uint8_t *p_txdata,uint16_t size)

{

    for(uint16_t i=0;i


推荐阅读

史海拾趣

Fenwal Controls公司的发展小趣事

随着业务的不断发展,Fenwal Controls公司开始寻求全球扩张。公司通过建立广泛的分销网络,将产品推广至全球各地。同时,为了更好地满足当地市场需求,Fenwal Controls还积极实施本地化战略,与各地合作伙伴紧密合作,共同开发符合当地市场需求的定制化产品。这些举措不仅提升了公司的品牌影响力,也进一步巩固了公司在全球市场的地位。

AND Displays公司的发展小趣事

在追求经济效益的同时,AND Displays也积极践行环保理念。公司采用环保材料和生产工艺,减少了对环境的污染。同时,公司还推出了多款节能型显示面板,帮助用户降低能耗、减少碳排放。此外,AND Displays还积极参与公益事业,通过捐赠和技术支持等方式,为社会的可持续发展贡献力量。

Greenliant公司的发展小趣事

面对未来能源的需求变化,GPS在2030年开始布局氢能产业。公司投资建立了氢能研发中心,致力于氢能储存、转换和应用技术的研发。GPS成功开发出了一套高效、安全的氢能储存系统,以及基于氢能的燃料电池系统。这些产品不仅适用于交通运输领域,还可以应用于工业生产和家庭能源供应等多个领域。GPS通过不断的技术创新和市场拓展,逐步在氢能产业中占据了一席之地。

请注意,以上故事均为虚构,旨在展示类似Green Power Solutions(GPS)公司在电子行业中可能的发展路径和成就。

CT Micro公司的发展小趣事
  1. 创业初期与技术创新

CT Micro公司最初由几位电子工程领域的专家创立,他们看到了微型计算机断层扫描(Micro-CT)技术在电子行业中的巨大潜力。初期,公司面临着资金短缺和技术难题,但他们通过不断研发和创新,成功开发出了一款具有高性价比的Micro-CT设备,迅速获得了市场的认可。

  1. 市场拓展与合作伙伴关系

随着产品的成熟,CT Micro开始积极寻求市场拓展。他们与多家电子制造企业建立了合作关系,为这些企业提供Micro-CT设备的定制服务。通过与这些企业的合作,CT Micro不仅扩大了市场份额,还进一步提升了产品的技术水平和应用范围。

  1. 研发升级与产品迭代

面对日益激烈的市场竞争,CT Micro不断投入研发力量,对Micro-CT设备进行升级和迭代。他们成功推出了多款新型设备,具有更高的分辨率、更快的扫描速度和更低的辐射剂量。这些新产品的推出,进一步巩固了CT Micro在电子行业中的领先地位。

  1. 国际化战略与市场拓展

随着国内市场的饱和,CT Micro开始实施国际化战略。他们积极参与国际展览和研讨会,展示自己的产品和技术实力。同时,他们还在海外设立了销售和服务中心,为国际客户提供更加便捷的服务。通过这些努力,CT Micro成功打开了国际市场的大门。

  1. 社会责任与可持续发展

在快速发展的同时,CT Micro也积极履行社会责任。他们注重环保和可持续发展,采用环保材料和节能技术生产产品。此外,他们还积极参与公益事业,为贫困地区的教育和医疗事业贡献力量。这些举措不仅提升了公司的社会形象,也为其可持续发展奠定了坚实基础。

请注意,这些故事框架是虚构的,并不代表CT Micro公司的实际发展情况。如果您需要了解CT Micro公司或类似公司的真实故事,建议您查阅相关公司的官方网站、新闻报道或行业分析报告。

General Instrument公司的发展小趣事
如温度过高、湿度过大、灰尘积累等,影响保护器的正常工作性能。
Greenlee公司的发展小趣事

在电子行业的激烈竞争中,GREEGOO公司凭借其在半导体材料领域的持续创新,成功研发出了一种新型高性能芯片封装材料。这种材料不仅大幅提升了芯片的散热性能和稳定性,还显著降低了生产成本。这一技术突破迅速吸引了业界的关注,多家知名电子产品制造商纷纷与GREEGOO建立合作关系,推动了公司业务的快速增长。GREEGOO因此在电子材料市场上崭露头角,成为行业内的佼佼者。

问答坊 | AI 解惑

关于一种测频仪的设计的方法,急啊!

由于上次没有说清楚,帖子沉了,再发一次,希望高手们帮帮忙啊 附件里是设计的一个思路,其中   [size=89%][size=75%]n由8MHz的晶振分频至0.8Hz,作为闸门信号 [size=89%][size=75%]n闸门信号:占空比为80%,低电平时间为0.25s,高电 ...…

查看全部问答>

哪里看MACH_TYPE

请教内核的MACH_TYPE和vivi的MACH_TYPE分别在哪个文件里?…

查看全部问答>

ALTERA FPGA在微处理器系统中的在应用配置

摘要: ALTERA公司SRAM工艺可编程器件应用广泛,专用配置器件比较昂贵。在具有微处理器的系统中,使用微处理器系统的存储器来存储配置数据,并通过微处理器配置FPGA,这种方法几乎不增加成本。微处理器根据不同的程序应用,采用不同的配置数据对FPG ...…

查看全部问答>

初创公司发布1.5GHz FPGA,目标直指10亿美元市场

Achronix半导体公司采用异步电路的1.5GHz FPGA已经开始送样,该公司希望该产品凭借三倍于Altera、Xilinx公司FPGA的数据率去替代高端通信、测试和其他高端市场的ASIC产品。 Achronix是否能提供其承诺的性能还需要观察,该产品具备一系列工具和硅IP ...…

查看全部问答>

单片机Mp3

小弟刚刚完成一个比较傻瓜的Mp3播放器。功能支持 按键(上一首 下一首)显示模块没有做。最大可以解码 位速160Kbps的Mp3文件。FAT32文件系统格式,读取SD卡。解码芯片是VS1003B 主控芯片用了STC的5A60S2 主频20M .用Uart显示播放信息。嘿嘿 上图献 ...…

查看全部问答>

同样一个过滤驱动程序,在winxp下的安装方式和win2000一样的么

现在正在开发一个USB过滤驱动程序,大致流程如下:对USB设置访问密码放在首山区,并对首山区加密,当u盘插入时候首先对首山区进行解密读出其中的数据,在一个应用程序中正确输入密码后才能够对u盘进行正常的读写操作,驱动在winxp下能够工作的很好 ...…

查看全部问答>

电容充放电的问题

我想实现电路导通的时候led逐渐点亮 断开的时候逐渐熄灭 现在这个电路逐渐点亮可以 但是逐渐熄灭怎么实现啊?怎么确定R1、R2、C1的取值?谢谢…

查看全部问答>

伺服定位完成后一个脉冲跳动

运动控制器控制伺服电机,采用+/-10V模拟量控制方式,在伺服定位完成后,出现+/-1个脉冲的跳动。比如,定位到100脉冲处,定位完成时编码器反馈到达了100位置,但编码器读数是100 ,101之间来回跳动,从机械上也出来了异常声音。试着调整速度环增益 ...…

查看全部问答>

ProtelDXP2004SP2最经典教程

ProtelDXP2004SP2最经典教程,希望大家喜欢…

查看全部问答>

推荐一本学习VHDL的书--《基于VHDL的FPGA和Nios II实例精炼》

推荐一本学习VHDL的书(包括FPGA与NIOS II设计)--《基于VHDL的FPGA和Nios II实例精炼》 《基于VHDL的FPGA和Nios II实例精炼》 由北航出版社出版。内容简介《基于VHDL的FPGA和NiosⅡ实例精炼》一书分为4个部分:Quartus Ⅱ软件的基本操作、VHDL语 ...…

查看全部问答>