我试图了解 STM32F091VB 如何使用以下功能通过串行协议管理数据发送HAL_UART_Transmit_IT()
目前,我在 main() 中调用了一个函数,该函数创建数据包并通过串行发送;它是这样的:
tx1[0] = STX;
tx1[1] = 0xFF;
tx1[2] = 0x80;
tx1[3] = 0x80;
DE_TAST_HIGH;
HAL_UART_Transmit_IT(&huart3, tx1, 8);
Run Code Online (Sandbox Code Playgroud)
现在,我发送的数据非常小,因此代码运行得非常快,我试图了解如果我尝试通过串行协议发送一个大数据包会发生什么。
例如,如果我的数据包tx1[]
是 100 字节,则该HAL_UART_Transmit_IT()
功能会阻止 CPU 在将完整数据包发送到串行端口时等待,或者它的工作方式更像是一个单独的进程,我告诉微控制器发送该数据包,并且在发送数据包的同时,它还处理剩余的数据包。我的代码/主要功能的一部分?
我试图在微型数据表上搜索,看看是否有关于此过程的信息,但我没有运气。我已阅读stm32f0xx_hal_uart.c
并确认它是通过中断以非阻塞模式发送的,但我想有一些关于它的更深入的文档
我试图理解用 C 编写的固件,它驱动超宽带连接的芯片。
固件大量使用typedef
和指针。我已经了解固件背后的大部分想法,但有一个typedef void
功能我无法理解。
基本上,固件创建了一个结构来保存设备数据
typedef struct
{
//some data
dwt_cb_t cbTxDone; // Callback for TX confirmation event
//some other data
} dwt_local_data_t ;
Run Code Online (Sandbox Code Playgroud)
我知道该结构名为dwt_local_data_t并包含一些变量,包括这种奇怪的dwt_cb_t类型。
在 .h 文件中dwt_cb_t被命名为
// Call-back type for all events
typedef void (*dwt_cb_t)(const dwt_cb_data_t *);
Run Code Online (Sandbox Code Playgroud)
其中dwt_cb_data_t是另一种形式的结构
typedef struct
{
uint32 status; //initial value of register as ISR is entered
uint16 datalength; //length of frame
uint8 fctrl[2]; //frame control bytes
uint8 rx_flags; //RX frame …
Run Code Online (Sandbox Code Playgroud) 我在 Cloudflare Workers 上有一个 Javascript 边缘函数。它唯一做的就是检查特定标头并返回包含相应值的 JSON
请参阅下面的代码
async function handleRequest(request) {
const url = new URL(request.url);
const psk_db = await KV_STORAGE.get(request.headers.get(PRESHARED_AUTH_HEADER_KEY));
if (psk_db === null) {
return new Response("Access denied", { status: 404 });
}
else{
//calculate number
//return JSON
const data = {
pswd: psk_db,
};
json = JSON.stringify(data, null, 2);
}
return new Response(json, {
headers: {
'content-type': 'application/json;charset=UTF-8',
'Access-Control-Allow-Origin': url.origin,
},
})
}
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
Run Code Online (Sandbox Code Playgroud)
现在,该函数在 cloudflare 测试环境中运行良好,但是当我尝试使用运行此 javascript 函数的按钮从 html 页面请求时 …
c ×2
c++ ×1
cors ×1
javascript ×1
pointers ×1
serial-port ×1
stm32 ×1
stm32f0 ×1
typedef ×1
uart ×1