新手上路
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2021-6-23
- 在线时间
- 7 小时
|
6金钱
各位大神,我想把CAN接收到的信号通过串口发送给其他单片机,我试了一下,接收到的是乱码,我怀疑可能是数据格式的问题,但又找不出。求各位大神帮帮忙。 定义:
u8 canbuf[8];
uint16_t can1buf[8]; //这里我是想把u8转换成uint16_t格式,但接收到的还是乱码
将CAN信号通过串口发送:
res=CAN1_Receive_Msg(canbuf);
if(res)
{
LCD_Fill(30,270,160,310,WHITE);//清除之前的显示
for(i=0;i<8;i++)
{
can1buf[i] = canbuf[i];
USART_SendData(USART1,can1buf[i]); //把can信号通过串口发送数据给其他单片机
if(i<8)LCD_ShowxNum(30+i*32,270,canbuf[i],3,16,0X80); //显示数据
}
}
串口发送的定义
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
{
/* Check the parameters */
assert_param(IS_USART_ALL_PERIPH(USARTx));
assert_param(IS_USART_DATA(Data));
/* Transmit Data */
USARTx->DR = (Data & (uint16_t)0x01FF);
}
|
-
主函数
-
串口定义
|