spi读数据恢复什么(jspi1接口是什么?)

发布日期:2023-04-22 09:32:21   浏览量 :1897
发布日期:2023-04-22 09:32:21  
1897

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

spi读数据恢复什么(jspi1接口是什么?)

一、jspi1接口是什么?
微星主板的jspi1接口是jspi1插针,就是微星主板上用来插BIOS编程器的插针。

微星的这个是专用的12针,这个插针对于一般人来说基本没用。

有关通过JSPI接口刷新BIOS的相关说明:

1. 我们需要获得一份BIOS文件副本,通过网络下载获通过其他同型号主板备份获得均可。

2. 将需要修复的主机调整为最小系统。

3. 将编程器接至JSPI引脚。

4. 将编程器与可工作的计算机通过USB相连,打开编程器。

5. 按下开机键,对主板加电。

6. 在正常使用的计算机上通过相关程序操作编程器,对BIOS进行在线烧录。

7. 成功后关闭计算机,拆除编程器,恢复需维修主机完整。此时全部修复工作已经完成。

二、uart模块使用?
UART使用示例

1. UART发送与接收(非中断方式)

#include 'headfile.h' //包含头文件

uint8 uart_receive;

uint8 uart_send[10];

int main(void)

{

DisableGlobalIRQ();

board_init();//务必保留,本函数用于初始化MPU 时钟 调试串口

//初始化串口 波特率为115200 TX为D16 RX为D17

uart_init (USART_8, 115200,UART8_TX_D16,UART8_RX_D17);

//总中断最后开启

EnableGlobalIRQ(0);

uart_send[0] = 'S';

uart_send[1] = 'E';

uart_send[2] = 'E';

uart_send[3] = 'K';

uart_send[4] = 'F';

uart_send[5] = 'R';

uart_send[6] = 'E';

uart_send[7] = 'E';

uart_send[8] = '\\n';

uart_send[9] = '\

';

while(1)

{

//串口字节发送

uart_putchar(USART_8,'S'); //发送0xA5

uart_putbuff(USART_8,uart_send,10); //发送uart_send

uart_putstr(USART_8,'输入任意字符程序继续运行\\n\

');//发送字符串

uart_getchar(USART_8,&uart_receive);//等待接收到一个字节后程序继续运行

uart_putchar(USART_8,uart_receive); //发送收到的字符

uart_putstr(USART_8,'\\n\

'); //发送换行

systick_delay_ms(100);//延时100毫秒

}

}

编程要点1:在使用uart_getchar函数获取串口数据时需要注意,此函数需要等到收到数据后才会继续往后运行。

2. UART接收(中断方式)

#include 'headfile.h'

uint8 example_rx_buffer;

lpuart_transfer_t example_receivexfer;

lpuart_handle_t example_g_lpuartHandle;

uint8 uart_data;//接收到的串口数据

void example_uart_callback(LPUART_Type *base, lpuart_handle_t *handle, status_t status, void *userData)

{

if(kStatus_LPUART_RxIdle == status)

{

//数据已经被写入到了 之前设置的BUFF中

//本例程使用的BUFF为 example_rx_buffer

uart_data = example_rx_buffer;//将数据取出

}

handle->rxDataSize = example_receivexfer.dataSize; //还原缓冲区长度

handle->rxData = example_receivexfer.data; //还原缓冲区地址

}

//实验现象说明:将RX TX短接

//通过在线调试可以看到 uart_data数据在持续加一操作

uint8 uart_send;

int main(void)

{

DisableGlobalIRQ();

board_init(); //务必保留,本函数用于初始化MPU 时钟 调试串口

//初始化串口 波特率为115200 TX为D16 RX为D17

uart_init (USART_8, 115200,UART8_TX_D16,UART8_RX_D17);

NVIC_SetPriority(LPUART8_IRQn,15); //设置串口中断优先级 范围0-15 越小优先级越高

uart_rx_irq(USART_8,1);

example_receivexfer.dataSize = 1; //配置串口接收缓冲区长度

example_receivexfer.data = &example_rx_buffer; //配置串口接收的缓冲区

//设置中断函数及其参数

uart_set_handle(USART_8, &example_g_lpuartHandle, example_uart_callback, NULL, 0, example_receivexfer.data, 1);

EnableGlobalIRQ(0);

while(1)

{

uart_send ;

//串口字节发送

uart_putchar(USART_8,uart_send);

//更多功能函数 自行查阅zf_uart文件

systick_delay_ms(100);

}

}

编程要点1:在使用串口接收中断时需要注意,串口中断并不是一个固定的名称了,而是使用一个函数去设置当中断后我们想要执行的函数。这是因为在SDK的底层已经定义了串口中断,并且在串口中断里面做了一些处理,内部的程序会根据我们在初始化串口中断函数时设置的参数,在合适的时候调用我们用户自己设置的中断回调函数。

编程要点2:在使用串口接收中断后,我们想要接收到一个字节就进入中断,但是又想要接收数组或者字符串应该怎么办呢?完成这个功能并不难,我们只需要定义一个数组,将每次收到的字节依次存放在数组里面就可以实现。
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部