久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
rtthread stm32f103 modbus 從機(jī)例程
[打印本頁]
作者:
mikehhuang
時(shí)間:
2019-9-28 20:02
標(biāo)題:
rtthread stm32f103 modbus 從機(jī)例程
stm32F103 最小系統(tǒng),modbus slave RTU 示例代碼,采用freemodbus
單片機(jī)源程序如下:
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#include "wdt.h"
//#include "uart.h"
//#include "mpu6050.h"
#include "mb_slave.h"
#include "bsp_flash.h"
/* 私用宏定義----------------------------------------------------------------*/
#define THREAD_PRIORITY 25
#define THREAD_STACK_SIZE 512
#define THREAD_TIMESLICE 5
#define EVENT_BIT_0 (1 << 0)
#define EVENT_BIT_1 (1 << 1)
//#define EVENT_BIT_2 (1 << 2)
//#define EVENT_BIT_3 (1 << 3)
//#define EVENT_BIT_4 (1 << 4)
//#define EVENT_BIT_5 (1 << 5)
/* 私用變量----------------------------------------------------------------*/
/**************************** 任務(wù)句柄 ********************************/
static rt_thread_t th_wdg = RT_NULL; //看門狗
static rt_thread_t th_Gyro = RT_NULL; //陀螺儀
/*事件控制塊*/
static struct rt_event event;
/*wdg 入口函數(shù)*/
static void th_wdg_entry(void *parameter)
{
rt_uint32_t count = 0;
while (1)
{
// rt_kprintf("wdg thread count: %d\n", count ++);
rt_thread_mdelay(50);
/* 收到所有事件,復(fù)位看門狗*/
rt_uint32_t e;
if (rt_event_recv(&event, (EVENT_BIT_0 ),
RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR,
RT_WAITING_FOREVER, &e) == RT_EOK)
{
// rt_kprintf("wdg: AND recv event 0x%x\n", e);
//喂狗
iwdg_feed();
}
}
}
/* gyro 入口函數(shù)*/
static void th_Gyro_entry(void *parameter)
{
// float angle_Y = 0; //初始狀態(tài)值
// float angle_X = 0;
// float angle_Z = 0;
//
// rt_int16_t temp; //溫度
// rt_int16_t gx,gy,gz; //三軸加速度
// rt_int16_t ax,ay,az; //三軸角速度
//
// rt_err_t ret;
//
while(1)
{
// ret = mpu6050_temperature_get(&temp);
// if (ret != RT_EOK)
// {
// rt_kprintf("mpu6050 : get temperature error\r\n");
// }
// ret = mpu6050_accelerometer_get(&ax, &ay, &az);
// if (ret != RT_EOK)
// {
// rt_kprintf("mpu6050 : get acc error\r\n");
// }
// ret = mpu6050_gyroscope_get(&gx, &gy, &gz);
// if (ret != RT_EOK)
// {
// rt_kprintf("mpu6050 : get gyro error\r\n");
// }
// if (ret == RT_EOK)
// {
// rt_kprintf("mpu6050: temperature=%-6d gx=%-6d gy=%-6d gz=%-6d ax=%-6d ay=%-6d az=%-6d\r\n",temp/100,gx,gy,gz,ax,ay,az);
// angle_X=Kalman_X(ax/100,ay/100,az/100,gx,gy,gz);
// angle_Y=Kalman_Y(ax/100,ay/100,az/100,gx,gy,gz);
// angle_Z=Kalman_Z(ax/100,ay/100,az/100,gx,gy,gz);
// rt_kprintf("x=%-6d y=%-6d z=%-6d \r\n ",angle_X,angle_Y,angle_Z);
// }
// rt_thread_delay(rt_tick_from_millisecond(1000));
rt_event_send(&event, EVENT_BIT_0);
rt_thread_delay(200);
}
}
//動(dòng)態(tài)創(chuàng)建線程
void th_create(){
rt_err_t result;
/* 初始化事件對(duì)象 */
result = rt_event_init(&event, "event", RT_IPC_FLAG_FIFO);
if (result != RT_EOK)
{
rt_kprintf("init event failed.\n");
return ;
}
/*動(dòng)態(tài)創(chuàng)建WDG線程*/
th_wdg = rt_thread_create("wdg",
th_wdg_entry, RT_NULL,
THREAD_STACK_SIZE-256,
THREAD_PRIORITY, THREAD_TIMESLICE);
/* 如果獲取線程控制塊,啟動(dòng)這個(gè)線程 */
if (th_wdg != RT_NULL)
{
rt_thread_startup(th_wdg);
}
/*動(dòng)態(tài)創(chuàng)建姿態(tài)獲取線程*/
th_Gyro = rt_thread_create("Gyro",
th_Gyro_entry, RT_NULL,
THREAD_STACK_SIZE,
THREAD_PRIORITY-1, THREAD_TIMESLICE);
/* 如果獲取線程控制塊,啟動(dòng)這個(gè)線程 */
if (th_Gyro != RT_NULL)
rt_thread_startup(th_Gyro);
}
int main(void)
{
// //485 初始化
// uart5_init();
//創(chuàng)建線程
th_create();
//modbus 初始化
mb_slave_init();
//看門狗初始化
if(iwdg_init()==RT_EOK){
rt_kprintf("iwdg init success.\n");
};
// rt_pin_mode(MODBUS_MASTER_RT_CONTROL_PIN_INDEX, PIN_MODE_OUTPUT);
// rt_pin_write(MODBUS_MASTER_RT_CONTROL_PIN_INDEX, PIN_HIGH);
// #define RT_MODBUS_MASTER_USE_CONTROL_PIN 1
// #define MODBUS_MASTER_RT_CONTROL_PIN_INDEX 19
// uint16_t Data [6] = {7,1,2,3,4,5};
// uint32_t Address = 0x0800FC00 ;
// FLASH_WriteData(Address,Data,1);
//
// uint16_t Text [6] = {0};
// FLASH_ReadMoreData(Address,Text,6);
// for(int i=0;i<6;i++){
// rt_kprintf("%d \r\n",Text[i]);
// }
return RT_EOK;
}
復(fù)制代碼
所有資料51hei提供下載:
stm32f103_modbus.rar
(111.17 KB, 下載次數(shù): 74)
2019-9-28 20:01 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
shanren1
時(shí)間:
2021-3-2 16:45
能不能直接用?
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲日本视频
|
特级毛片爽www免费版
|
性色av蜜臀av浪潮av老女人
|
黄色一级在线观看
|
日韩欧美在线观看视频
|
久久久久97
|
欧美一级久久
|
免费在线观看www
|
欧美一级二级三级
|
欧美8888
|
天堂中文av
|
黄a视频
|
国产成人91
|
www.av在线播放
|
一级黄色性生活片
|
天海翼在线视频
|
韩国av免费
|
理论片中文字幕
|
色天堂影院
|
中文字幕www
|
18成人免费观看网站
|
日本不卡在线视频
|
天天视频黄
|
日韩综合久久
|
国产一级黄色大片
|
玖草在线
|
亚洲美女网站
|
欧美三级韩国三级日本三斤在线观看
|
久久国产精
|
日韩精品免费观看
|
久久都是精品
|
午夜国产在线观看
|
色婷婷精品
|
色婷婷狠狠
|
欧美日韩一区二区在线观看
|
一本久
|
久久久精品国产sm调教网站
|
亚洲男人天堂av
|
日韩网站在线观看
|
国产又粗又长又爽
|
国产一区二区三区在线
|