历史上的今天
返回首页

历史上的今天

今天是:2024年12月10日(星期二)

正在发生

2019年12月10日 | FreeModbus for stm32(Keil工程)——精简Modbus slave协议

2019-12-10 来源:eefocus

1、测试环境Keil MDK 4.7a  stm32f103c8, PB12为输出线圈,可以通过Modbus Poll来控制线圈的输出状态。


2、通过ModbusProt.h配置硬件、数据缓冲区大小和功能码配置


3、移植要点为Port.c和Port.h


   定时器操作在stm32平台下基本不用改 

   a、定时器初始化;   xMBPortTimersInit() 

   b、开定时器及中断; vMBPortTimersEnable() 

   c、关定时器及中断; vMBPortTimersDisable() 

   d、定时器溢出中断服务程序;TIME_IQR_HANDLER() 

   串口操作: 

   a、串初始化;   xMBPortSerialInit() 

   b、串口发送中断、接收中断; UART_IQR_HANDLER() 

   c、串口收发控制; vMBPortSerialEnable() 

   开关量操作 CPU硬件寄存器类型指针定义,用于定义IO输入和输出, 

   注意在此定义的IO必须初始化为输入或输出。 

   typedef volatile uint32_t * CPURegistertype; 

    //线圈状态, 存储格式:&IO输出口寄存器, 引脚号 

    MBCoilType MBCoils[REG_COILS_SIZE] = { 

        &(GPIOB->ODR), 12, //PB12做为输出线圈 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

    };


    //离散开关输入状态, 存储格式:&IO输出口寄存器, 引脚号 

    MBDiscreteType MBDiscretes[REG_DISCRETE_SIZE] = { 

        &(GPIOB->ODR), 12, //PB12做为离散输入 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

        &(GPIOB->ODR), 12, 

    };


image 

推荐阅读

史海拾趣

德欣(COV)公司的发展小趣事

德欣(COV)公司自创立之初,就致力于压敏电阻器、SPD防雷芯片、智能过压保护器等核心电子元件的研发与生产。公司创始人凭借对电子行业发展趋势的精准判断,以及对技术创新的执着追求,成功研发出了一系列具有竞争力的产品。这些产品不仅满足了当时市场的需求,也为德欣公司在电子行业打下了坚实的基础。

FOCI Fiber Optic Communications Inc公司的发展小趣事

为了进一步提升市场竞争力,德欣公司开始在全球范围内进行布局。公司先后在亚洲、欧洲、美洲等地设立了生产基地和研发中心,加强了与国际市场的联系。同时,德欣公司还积极寻求与国际知名企业的合作,共同开发新产品、新技术和新市场。这些举措不仅提升了德欣公司的品牌影响力和市场竞争力,也为其未来的发展提供了更广阔的空间。

Hitachi Chemical Co America Ltd公司的发展小趣事

为了进一步提升市场竞争力,德欣公司开始在全球范围内进行布局。公司先后在亚洲、欧洲、美洲等地设立了生产基地和研发中心,加强了与国际市场的联系。同时,德欣公司还积极寻求与国际知名企业的合作,共同开发新产品、新技术和新市场。这些举措不仅提升了德欣公司的品牌影响力和市场竞争力,也为其未来的发展提供了更广阔的空间。

EM Devices Corporation公司的发展小趣事

作为一家有社会责任感的企业,EM Devices Corporation不仅关注自身的经济效益,还积极履行社会责任。公司严格遵守环保法规,采取了一系列环保措施,减少生产过程中的污染排放。此外,公司还积极参与公益事业,为社会做出了积极的贡献。这种可持续发展的理念为公司赢得了广泛的社会赞誉和尊重。

蜂鸟无线公司的发展小趣事
PWM调速电路可以与微控制器等集成电路结合,实现电动机转速的自动化控制,提高系统的智能化水平。
Cree(科瑞)公司的发展小趣事

Cree公司成立于1987年,初期专注于硅碳(SiC)材料的研发。在LED灯珠的制造工艺中,Cree的工程师们发现采用SiC材料制成的MOS功率管具备更好的市场价值。随着技术的不断进步,Cree开始将其应用于LED生产,这一创新使得Cree在LED行业中脱颖而出。公司的LED产品以其高效、耐用的特性受到市场的广泛认可,为Cree的后续发展奠定了坚实的基础。

问答坊 | AI 解惑

Spectre仿真器在集成电路设计自动化中的应用

Spectre仿真器在集成电路设计自动化中的应用…

查看全部问答>

混合动力车为何被中国冷落?

上周举办的北京车展无疑是中国汽车圈最受瞩目的盛事,不过在车展揭幕以前,首先碰到的却是一家汽车零件业巨头——美国江森自控公司。该公司宣布在中国推出瓦尔塔品牌的汽车蓄电池,同时更加引起我注意的是,有关人员还透露说,该公司在混合动力轿车 ...…

查看全部问答>

bootloader里flash分区信息是否必须和内核的分区信息一致?

如题,我的开发板的这两个分区信息有点不同,请问可以不同吗?…

查看全部问答>

?LPC2148 定时器捕获功能

我对LPC2148定时器的捕获功能很糊涂, 哪位可以帮忙解释一下?当我把一个管脚设置成捕获功能后, 如果我把这个管脚和一个外置时钟连接, 我能否对这个时钟的上升, 下降沿进行捕获? 计数控制寄存器(CTCR) 和捕获控制寄存器(CCR)有什么区别? 谢 ...…

查看全部问答>

MC9S08QG8外部晶振电路的问题

外部晶振选用的4.096MHz,电容C1和C2都是20pF,电阻RF是1M。 觉得外部晶振没有起振呢,测晶振两脚的电压,各是0.37V,0.47V。 ICS的工作模式是使用FLL的外部模式FEE。 不知道原因出在哪了? 还请高手指点,谢谢~…

查看全部问答>

Win2003的DDK在xp下能用吗?

就是说我在XP下用2003的DDK开发可以吗?…

查看全部问答>

STM32中文入门资料 感觉还可以!~

STM32中文入门资料 感觉还可以!~…

查看全部问答>

使用USB时的外时钟问题

因为项目的需要,外时钟为11.0592M,应当如何设置,让STM32F103的USB可以使用…

查看全部问答>

SWD不能下载程序!!!

各位大虾: 我用ST-LINK和J-LINK通过JTAG或者SWD方式都可以给目标板下载程序,但是换另外一块板子,只引出VDD GND JTMS JCLK 对其无论使用JLINK还是STLINK都无法下载,已确认用3v电池供电,求助!!!…

查看全部问答>

求ARM Developer Suite v1.2的下载地址?

求ARM Developer Suite v1.2的下载地址?  找了好久没找到急死我了…

查看全部问答>