在新板子上点亮第一盏灯

费了九牛二虎之力,先是自己飞线(废了一块板子),后又由于飞线没有固定飞线脱落(不敢自己再飞),最后拿胶枪终于固定了一块板子,又由于触电接触不量,软件Max Clock设置不正确等问题,反复折腾,最后终于成功访问了板子。终于可以上板调试了,祝贺一下先!!!

赶紧实验第一个程序,新板子的LED是接在PB4上的,按照例子,初始化LED,电灯失败!代码如下:

void LED_Init(void)
{ 
	RCC->APB2ENR|=1<<3;    //使能PORTB时钟	
	GPIOB->CRL&=0XFFF0FFFF; 
	GPIOB->CRL|=0X00030000;//PB4 推挽输出   	 
	GPIOB->ODR|=1<<4;      //PB4 输出高
}
int main(void)
{
	Stm32_Clock_Init(9);
	delay_init(72);
	LED_Init();
 
	while(1)
	{
		LEDB = 0;
		delay_ms(500);
		LEDB = 1;
		delay_ms(500);
	}
}

 

查阅了STM32的手册,原来PB4在上电复位后,默认是用于JTAG调试的。

复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式(CNFx[1:0]=01b,MODEx[1:0]=00b)。 复位后,JTAG引脚被置于输入上拉或下拉模式: 
─ PA15:JTDI置于上拉模式 
─ PA14:JTCK置于下拉模式 
─ PA13:JTMS置于上拉模式 
─ PB4: JNTRST置于上拉模式 


 

软件将JTAG调试关闭后,LED闪亮起来,太美了!

int main(void)
{
	Stm32_Clock_Init(9);
	delay_init(72);
	LED_Init();
	
	JTAG_Set(JTAG_SWD_DISABLE);
	JTAG_Set(SWD_ENABLE);
	while(1)
	{
		LEDB = 0;
		delay_ms(500);
		LEDB = 1;
		delay_ms(500);
	}
}


 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值