stm32-软件仿真查看输出波形图

代码

#include "stm32f10x.h"

typedef unsigned          char u8;
typedef unsigned short     int u16;
void delay_ms(u16 ms)
{
	u16 j;
	while(ms--)
	{
		for(j=0;j<1000;j++);
	}
}

#define GPIOA_ODR (GPIOA_BASE+0x0C)
#define GPIOA_IDR (GPIOA_BASE+0x08)
#define GPIOB_ODR (GPIOB_BASE+0x0C)
#define GPIOB_IDR (GPIOB_BASE+0x08)
#define GPIOC_ODR (GPIOC_BASE+0x0C)
#define GPIOC_IDR (GPIOC_BASE+0x08)
#define GPIOD_ODR (GPIOD_BASE+0x0C)
#define GPIOD_IDR (GPIOD_BASE+0x08)
#define GPIOE_ODR (GPIOE_BASE+0x0C)
#define GPIOE_IDR (GPIOE_BASE+0x08)

#define BitBand(Addr,bitNum) *((volatile unsigned long *)((Addr&0xf0000000)+0x2000000+((Addr&0xfffff)<<5)+(bitNum<<2)))
	
#define PAout(n) BitBand(GPIOA_ODR,n)
#define PAin(n)  BitBand(GPIOA_IDR,n)
#define PBout(n) BitBand(GPIOB_ODR,n)
#define PBin(n)  BitBand(GPIOB_IDR,n)
#define PCout(n) BitBand(GPIOC_ODR,n)
#define PCin(n)  BitBand(GPIOC_IDR,n)

void send_data(u8 data)
{
	u16 i;
	PAout(1) = 0;
	for(i=0;i<8;i++)
	{
		
		PAout(1) = 0;
		if((data & 0x01) == 0x01)
			PAout(0) = 1;
		else 
			PAout(0) = 0;
		delay_ms(1);
		
		PAout(1) = 1;
		delay_ms(1);
		data = data>>1;
	}
}

int main(void)
{
	//PA.0链接AB,PA.1连接CLOCK,PB.0连接clear
	//使得164的QA~QH输出11000100
	
	//1、设置引脚工作模式,PA.0,PA.1,PB.0作为推挽输出
	//2、164通信,PA.0 = 0,PA.1上升沿
	
	GPIOA->CRL = 0x33;
	GPIOB->CRL = 0x03;
	
	send_data(0xC4);
	
	return 0;
}

打开逻辑分析仪。

编译代码,进入调试打开逻辑分析仪。
在这里插入图片描述

设置分析参数。

在这里插入图片描述
PORTA.0
PORTA.1
在这里插入图片描述
DisplayType 改为bit
在这里插入图片描述
全速运行查看结果。(点击Zoom Out可以缩小视图)
在这里插入图片描述

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值