stm32f4開發板搭載乙個usb串列埠,2個rs232串列埠,部落格內容介紹usb串列埠和電腦通訊
步驟:1、串列埠和io口使能
rcc_apb2periphclockcmd(rcc_apb2periph_usart1,enable);
rcc_ahb1periphclockcmd(rcc_ahb1periph_gpioa,enable);
2、設定引腳復用功能
gpio_pinafconfig(gpioa,gpio_pinsource9,gpio_af_usart1);
gpio_pinafconfig(gpioa,gpio_pinsource10,gpio_af_usart1);
3、gpio初始化
gpio_initstru.gpio_mode=gpio_mode_af;
gpio_initstru.gpio_otype=gpio_otype_pp;
gpio_initstru.gpio_pin=gpio_pin_9|gpio_pin_10;
gpio_initstru.gpio_pupd=gpio_pupd_up;
gpio_initstru.gpio_speed=gpio_high_speed;
gpio_init(gpioa,&gpio_initstru);
4、串列埠初始化(設定波特率,字長,停止位,奇偶校驗位)
usart_inittypestru.usart_baudrate=bound;
usart_inittypestru.usart_hardwareflowcontrol=usart_hardwareflowcontrol_none;
usart_inittypestru.usart_mode=usart_mode_rx|usart_mode_tx;
usart_inittypestru.usart_parity=usart_parity_no;
usart_inittypestru.usart_stopbits=usart_stopbits_1;
usart_inittypestru.usart_wordlength=usart_wordlength_8b;
usart_init(usart1,&usart_inittypestru);
5、使能串列埠(若使用到中斷,則需開啟中斷並初始化nvic)
開啟中斷並初始化nvic
usart_itconfig(usart1,usart_it_rxne,enable);//開啟中斷 串列埠的接收中斷
nvic_inittypestru.nvic_irqchannel=usart1_irqn;
nvic_inittypestru.nvic_irqchannelcmd=enable;
nvic_inittypestru.nvic_irqchannelpreemptionpriority=2;//搶占優先順序
nvic_inittypestru.nvic_irqchannelsubpriority=2;//響應優先順序
nvic_init(&nvic_inittypestru);
//使能串列埠
usart_cmd(usart1,enable);
6、串列埠1的中斷函式
void usart1_irqhandler();//在檔案stm32 startup ***.s中,然後再重寫
通過usart_rx_sta作為狀態暫存器判斷是否接收到資料。每次接收乙個位元組的資料,判斷資料是否以回車換行結束(0x0d/0x0a),若是0x0d 0x0a結束則傳送完成,若未結束,則將資料儲存到usart_rx_buffer(200)中。
實現功能: 上位機控制led燈亮與滅,上位機傳送命令0,led1滅,傳送命令1,led1亮
int main()
printf("\r\n");
printf("接收資料的值1為:%d ",usart_rx_buf[0]);
printf("接收資料的值2為:%d ",usart_rx_buf[1]);
printf("接收資料的值3為:%d ",usart_rx_buf[2]);
if(usart_rx_buf[0]=='0')
else if(usart_rx_buf[0]=='1')
for(i=0;i接下來實現:微控制器定時傳送資料到上位機功能
kafka 訊息傳送和接收
傳送 例項 public class kafkaproducerdemo extends thread override public void run else catch interruptedexception e catch executionexception e num try catc...
訊息的建立傳送和接收
在 作業系統 訊息部分的比較經典的問題之一就是 訊息的建立傳送和接收 對於該問題完成並不難,我們使用訊息呼叫msgget msgsnd msggrev msgctrl 編制長度為1k 的訊息的傳送和接收程式,從而完成我們的問題。在作業系統訊息部分的比較經典的問題之一就是 訊息的建立傳送和接收 對於該...
通過kafka傳送和接收訊息
生產者配置類 configuration enablekafka public class kafkaproducerconfig private string address value private string batchsize value private string linger pu...