linux gpio模拟串口,STM32用GPIO口模拟串口通信的源程序

这个程序展示了如何使用STM32的GPIO口模拟串口通信。通过配置GPIO,EXTI,TIM1,TIM2和TIM3,实现发送和接收数据。主程序首先发送'Hello, C!',然后等待并接收数据,接收到数据后,通过模拟串口回传数据。" 104659801,9361802,烷烃基的识别与分类,"['化学', '图论', '数据结构', '算法', '烷烃']
摘要由CSDN通过智能技术生成

/*

*********************************************************************************************************

*

*        模块名称 : 主程序模块。

*        文件名称 : main.c

*        版    本 : V1.0

*        说    明 : ADC采样和滤波例程。

*        修改记录 :

*                版本号  日期       作者    说明

*

*********************************************************************************************************

*/

#include "stm32f10x.h"                /* 如果要用ST的固件库,必须包含这个文件 */

#include                         /* 因为用到了printf函数,所以必须包含这个文件 */

/* 定义例程名和例程发布日期 */

#define EXAMPLE_NAME        "GPIO口模拟串口"

#define EXAMPLE_DATE        "2012-11-12"

#define DEMO_VER                "1.0"

#define TXD_high()                GPIO_SetBits(GPIOA, GPIO_Pin_9)

#define TXD_low()                GPIO_ResetBits(GPIOA, GPIO_Pin_9)

#define BaudRateUsed        9600

#define SendingDelay        104

/* 仅允许本文件内调用的函数声明 */

static void PrintfLogo(void);

static void GPIO_Configuration(void);

static void Delay_Ms(__IO uint32_t nTime);

static void EXTI_Configuration(void);

static void TIM1_Configuration(void);

static void TIM2_Configuration(void);

static void TIM3_Configuration(void);

static void PrintfAnswer(void);

/* 外部文件可以调用的函数声明 */

void SendOneByte(uint8_t datatoSend);

__IO uint32_t TimingDelay;

uint8_t dataReceived[100];

uint8_t Logo[]={"Hello, C!\r\n"};

__IO uint8_t receivedFlag;

__IO uint8_t receivedNum, tmpreceivedNum;

uint16_t g_usAdcValue;        /* ADC 采样值的平均值 */

/*

*********************************************************************************************************

*        函 数 名: main

*        功能说明: c程序入口

*        形    参:无

*        返 回 值: 错误代码(无需处理)

*********************************************************************************************************

*/

int main(void)

{

/*

由于ST固件库的启动文件已经执行了CPU系统时钟的初始化,所以不必再次重复配置系统时钟。

启动文件配置了CPU主时钟频率、内部Flash访问速度和可选的外部SRAM FSMC初始化。

系统时钟缺省配置为72MHz,如果需要更改,可以修改:

\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c

中配置系统时钟的宏。

*/

uint8_t i;

/* IO配置 */

GPIO_Configuration();

/* 配置外部中断 */

EXTI_Configuration();

/* TIM1初始化,用于接收 */

TIM1_Configuration();

/* TIM2初始化,用于判断数据是否接收完成 */

TIM2_Configuration();

/* TIM3初始化,用于发送 */

TIM3_Configuration();

/* 直接调用模拟串口发送函数 */

SendOneByte('H');

SendOneByte('e');

SendOneByte('l');

SendOneByte('

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值