3986|5

27

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【ufun学习】环境开发搭建 [复制链接]

本帖最后由 闵丨大 于 2019-7-21 16:41 编辑

此内容由EEWORLD论坛网友闵丨大原创,如需转载或用于商业用途需征得作者同意并注明出处
  小弟跟着师兄准备全国电赛,师兄让我学习TI公司的MSP430F5529单片机。所以没能及时更新,非常抱歉。另外,当时以为自己下单了ST-Link,今天才发现并没有下单,超级尴尬。下文通过ISP烧写代码的方式到ufun。

  本文根据张先生提供的《uFun快速入门手册》和ufun原理图进行学习。文末会有ufun资料下载链接。

  1.安装KEIL5。

  2.ISP下载:https://www.stmcu.com.cn搜索Flash Loader Demonstrator

安装完成。

NEXT

中文意思:不能识别驱动,请复位你的设备,然后再尝试。

原因:BOOT0没有设置为’1’。用短接片将牛角座上BOOT0脚和VCC_3V3连接。当时忘记短接(捂脸)

 3.通过ISP烧写代码

 4.例程1—三色LED灯闪烁。1s切换一次颜色。

 5.例程2—PWM控制LED灯闪烁

 

 6.例程3—蜂鸣器控制

void BEEP_Init(void)

{

       GPIO_InitTypeDef  GPIO_InitStructure;

      

       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);   //ʹÄÜPA¶Ë¿ÚʱÖÓ

      

       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                                 //·äÃùÆ÷Òý½Å¶¨Òå

       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //ÍÆÍìÊä³ö

       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

       GPIO_Init(GPIOA, &GPIO_InitStructure);//³õʼ»¯GPIO

       GPIO_SetBits(GPIOA, GPIO_Pin_8);

}

 

 

 7.例程4—USB串口与PC通讯

 

 8.例程5—触摸按钮控制

 8.1按钮控制—俄罗斯方块

   8.2按钮控制—PWM

问题1:下按键不能够变换颜色。

问题2:按钮长按没反应

 

 9.例程6—ADC采集光敏电阻

问题1:只能16进制显示吗,不直观,若点击文本显示则出现乱码

 


 10.例程7—三轴加速度传感器

 总结:资料包提供的7个例程代码每个都烧写到uFun中测试了一遍。存在3个疑惑,本人会尽快弄清楚问题出在哪里。

 具体问题如下:

1.例程5中按钮控制PWM。下按钮不能变换颜色;按钮长按没有反应。

2.例程6中串口通信显示只能是16进制,若切换成文本模式则出现乱码。

最新回复

为什么我移植串口程序的时候,总是乱码,但是用原来的例程烧写进去又没事了呢? 我的总线时钟没配置明白吗? 我看代码里面也没有配置总线时钟的语句呀   详情 回复 发表于 2020-3-6 22:48
点赞 关注
 
 

回复
举报

27

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

由于资料包太大上传不了,只能上传到网盘上。

链接:https://pan.baidu.com/s/1KQevjMgsnW9uC3pZnEwyEg 
提取码:vait 

 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

续上帖两个问题。

1.例程5中按钮控制PWM。下按钮不能变换颜色;按钮长按没有反应。

2.例程6中串口通信显示只能是16进制,若切换成文本模式则出现乱码。

 

问题1已解决。下按钮模式选择是指按键长按有效或短按有效。关键代码如下:

//主函数部分

if(key_value==3)                       //检测到touch2被按下

       {                                         

           if(mode==0)                 //按键模式切换,mode=0为关闭连续按键,mode=1位开启连续按键

           {                                       

              mode=1;                               

              while(TOUCH2);          //如果按键未抬起,阻塞,直到抬起,防止模式跳变

           }                                       

           else                                    

              mode=0;                               

       }  

      

    }  

}

//按键子函数部分

int Key_Scan(int mode)                                                                  //按键扫描函数

{

 

    if(mode==1)                                                                         //按键模式切换,mode为1时长按按键可被多次连续识别,为0时长按按键视为单次按键

   {

      key_up=1;

   }

 

    if(key_up==1&&(TOUCH0==1||TOUCH1==1||TOUCH2==1||TOUCH3==1))//不同的按键被按下返还不同的值

    {

       Delay_Ms(100);

       key_up=0;

       if(TOUCH0 == 1)  

           return 1;

       if(TOUCH1 == 1)  

           return 2;

       if(TOUCH2 == 1)  

           return 3;

       if(TOUCH3 == 1)  

           return 4;

    }

    else if(TOUCH0==0&&TOUCH1==0&&TOUCH2==0&&TOUCH3==0)

    {

       key_up=1;

    }

       return 0;

}

 

问题2….

我想改成显示真实电压值,修改部分如下但不成功,望不吝赐教!

while(1)

    {

       Delay_Ms(100);

       sprintf((char *)dtbuf,"光敏电阻电压值:\r\n");

       ADC_Value_1=(int)ADC_Value*1000;            //ADC_Value值为ADC模块转换后的数值

       ADC_Value_a=(ADC_Value_1/1000)%10;

       ADC_Value_b=(ADC_Value_1/100)%10;

       ADC_Value_c=(ADC_Value_1/10)%10;

       ADC_Value_d=(ADC_Value_1/1)%10;

    //  Usart_SendString( USART1,dtbuf);//将ADC_Value通过USART1发送

       Usart_SendByte( USART1,ADC_Value_a);//个位

       Usart_SendByte( USART1,'.');//

       Usart_SendByte( USART1,ADC_Value_b);//十分位

       Usart_SendByte( USART1,ADC_Value_c);//百分位

       Usart_SendByte( USART1,ADC_Value_d);//千分位

    }

 
 

 

 
 
 

回复

291

帖子

0

TA的资源

一粒金砂(高级)

4
 

谢谢分享经验,列出了一下踩得坑,学习借鉴。点赞

 
 
 

回复

373

帖子

0

TA的资源

纯净的硅(初级)

5
 

为什么我移植串口程序的时候,总是乱码,但是用原来的例程烧写进去又没事了呢?

我的总线时钟没配置明白吗?

我看代码里面也没有配置总线时钟的语句呀

个人签名很高兴认识大家,请多关照
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

6
 

有的,但是不在主函数内。具体位置我有些记不清了。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表