stm32开发小程序(stm32开发项目)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

本篇文章给大家谈谈stm32开发小程序,以及stm32开发项目对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

如何使用stm32进行usb应用开发

主要是分析官方的Custom_HID 例程,强烈建议大家结合USB2.0协议去分析源代码。特别不错,分析完之后就可以修改移植了。另外,有个叫源享科技的出了一套80集的关于STM32的整套视频,对USB等高级外设讲的非常透彻,结合原子的开发板学习,效果也很好的。那视频在源享科技官网上挺贵的,哈哈,最后我在淘宝上发现那些新开的店最便宜的才10块钱。老板是个挺厉害的研究生,在学USB的时候帮了我不少。。废话不说了,关于修改官方例程的步骤::附件USB程序

一、usb_desc.c文件

根据你程序使用的通信方式修改。usb_desc.h文件中定义要根据usb_desc.c文件中的数组的大小;ConfigDescriptor[SIZ_CONFIG_DESC]下添加需要处理的端点;根据需要添加或删除报告描述符(主要用于HID)和CDC接口描述符(主要用于实现USB转串口)等。具体方法可以下载个“电脑圈圈”使用D12编写的例子。

二、Usb_conf.h文件:

1、修改需要处理那些中断

CNTR_CTRM

处理数据正确传输后控制,比如说响应主机

CNTR_DOVRM

/* DMA OVeR/underrun Mask */

CNTR_ERRM

/* ERRor Mask */

CNTR_WKUPM 0

/* WaKe UP Mask */

CNTR_SUSPM

/* SUSPend Mask */

CNTR_RESETM

主要处理USB复位后进行一些初始化任务

CNTR_SOFM

/* Start Of Frame Mask */

CNTR_ESOFM

/* Expected Start Of Frame Mask */

如:

usb_conf.h中的#define IMR_MSK (CNTR_CTRM | CNTR_SOFM | CNTR_RESETM )是决定USB_CNTR寄存器中的那个USB相关中断启动还是屏蔽。

2、根据需要增加端点缓存地址,要根据缓存区的地址修改,防止数据重叠

如下为根据每个缓冲区的大小为64字节修改:

#define ENDP1_TXADDR

(0xC0)

#define ENDP1_RXADDR

(0xD0)

#define ENDP2_TXADDR

(0x100)

#define ENDP2_RXADDR

(0x140)

#define ENDP3_TXADDR

(0x180)

#define ENDP3_RXADDR

(0x1C0)

3、修改/* CTR service routines */下的EPX_IN_Callback和EPX_OUT_Callback。注释掉需要处理的函数。NOP_Process表示不处理。

三usb_prop.c文件

1、修改void XX_Reset(void)(如:void Joystick_Reset(void))

一般/* Initialize Endpoint 0 */的不用修改,如下为举例说明端点1的初始化,其他端口原理一样。

SetEPType(ENDP1, EP_INTERRUPT);//设置端点1类型

/*EP_BULK

批量端点

EP_CONTROL 控制端点

EP_ISOCHRNOUS 同步端点

EP_INTERRUPT 中断端点*/

SetEPTxAddr(ENDP1, ENDP1_TXADDR); //设置端点1缓冲区基地址

SetEPTxCount(ENDP1, 64);// 配置Tx 缓冲计数器

SetEPRxStatus(ENDP1, EP_RX_DIS);// //设置端点接收关闭

SetEPTxStatus(ENDP1, EP_TX_NAK);// //设置端点1发送不应答

/*

#define EP_RX_DIS

(0x0000) // EndPoint RX DISabled 端点接收关闭

#define EP_RX_STALL

(0x1000) // EndPoint RX STALLed 端点接收延迟

#define EP_RX_NAK

(0x2000) // EndPoint RX NAKed 端点接收不应答

#define EP_RX_VALID

(0x3000) // EndPoint RX VALID端点接收有效

#define EP_TX_DIS

(0x0000) //EndPoint TX DISabled

#define EP_TX_STALL

(0x0010) // EndPoint TX STALLed

#define EP_TX_NAK

(0x0020) // EndPoint TX NAKed

#define EP_TX_VALID

(0x0030) // EndPoint TX VALID */

2、删除不相干的描述符等。

如自定义的USB设备就不需要以下结构体初始化:

ONE_DESCRIPTOR Joystick_Report_Descriptor

ONE_DESCRIPTOR Mouse_Hid_Descriptor

3、修改RESULT XX_Data_Setup(u8 RequestNo)的数据类请求处理。

如Custom_HID例程修改为“自定义USB设备”例程时可以将以下代码删除

if ((RequestNo == GET_DESCRIPTOR)

(Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT))

(pInformation-USBwIndex0 == 0))

{

if (pInformation-USBwValue1 == REPORT_DESCRIPTOR)

{

CopyRoutine = Joystick_GetReportDescriptor;

}

else if (pInformation-USBwValue1 == HID_DESCRIPTOR_TYPE)

{

CopyRoutine = Joystick_GetHIDDescriptor;

4、删除不相干的获得描述符返回函数

如自定义的USB设备就不需要以下函数:

Joystick_GetReportDescriptor

Joystick_GetHIDDescriptor

四、usb_endp.c文件

1、增加之前定义的中断数据处理函数

如:

void EP1_OUT_Callback(void)

{

这些写接收代码

五、数据发送和接收,举例说明

1、数据接收

u8 DataLen;

DataLen = GetEPRxCount(ENDP1);

PMAToUserBufferCopy(TX1_buffer, ENDP1_RXADDR, DataLen);

SetEPRxValid(ENDP1);

USART1_Send(DataLen);

count_out = 1;

2、数据发送

UserToPMABufferCopy(InBuffer, GetEPTxAddr(ENDP1), 64);

SetEPTxCount(ENDP1, 64);

SetEPTxValid(ENDP1);

如果你发送数据较为频繁,每次发送前应使用GetEPTxStatus(ENDP1)检测上次发送是否完成。如果端点状态处于EP_TX_VALID,说明发送未结束,如果端点状态处于EP_TX_NAK,说明发送结束。

我以前学过51单片机,现在想去学STM32,不知道难不难,现在我该怎么样去入门呢?

不难,多看资料,先用汇编写几个小程序,然后再用c,买一块开发板,结合例程在开发板上多实践,然后给自己提出要求,自己结合开发板编一些小程序,有了体会就容易了。

STM32不错的单片机。

如果学过单片机是最好的。在学的时候建议先买一块开发板,然后可以到网上书城买关于STM32的书,这个还是比较多的,如果直接看英文版的话,像我这样的英文菜鸟,没看几页就晕了。还有可以多上上论坛,个人觉得阿莫论坛是不错的,里面有很多高手和牛人。在学的过程中,一般都是先学GPIO和中断,因为这个比较基础和简单,可以一边学一边自己试着去模仿例程去写(可以用固件库或者写寄存器,固件库相对比较简单,开发周期短,但没有写寄存器稳定),然后就可以去看USART、SPI、I2C或者定时器。最后可以自己做一些小项目来综合一下

如何实现stm32上定位器上的信息,传送到小程序上

数据通过串口。

STM32进行解码,在通过串口把解码提取出的经纬度发送给GSM,GSM根据给定的手机号发短信过去。

关于stm32开发小程序和stm32开发项目的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-04-06 14:04:45
收藏
分享
海报
30
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了